首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

ASP.NET里弹出窗口的有关问题,单引号所引发的异常.

2012-02-23 
ASP.NET里弹出窗口的问题,单引号所引发的错误.在线等!代码:privatevoidbtnSumbit_Click(objectsender,Syst

ASP.NET里弹出窗口的问题,单引号所引发的错误.在线等!
代码:
private   void   btnSumbit_Click(object   sender,   System.EventArgs   e)
{
if(lbDircetList.Items.Count   ==   0)
{
lblMessage.Text   =   "error! ";
}
else
{
string   str= " ";

for   (int   i=0;i <this.lbDircetList.Items.Count;i++)
{
str   =   str+ " ' "+this.lbDircetList.Items[i].Value+ " ' "+ ", ";
}
str   =   str.Remove(str.Length   -   1,1);
Page.RegisterStartupScript( " ", " <script> window.open( 'rp_Total.aspx?departmentcode= "+str.ToString()+ " '); </script> ");
}
}
--------------------------
出错:
网页左下角出现黄色感叹号,里面提示:
必须要有 ') '
--------------------------
分析:
因为在str   =   str+ " ' "+this.lbDircetList.Items[i].Value+ " ' "+ ", ";
加了 " ' "而引起的.但我确实要连单引号都传过去,怎么做呢?即是这样:

例如:
string   str   =   '000001 ', '000002 '

但我不用窗口弹出方式,而用Session传递参数却正常.怎样才能在弹出窗口里打开页面没有出错呢?应该修改什么地方?谢谢!

[解决办法]
作为url传值的话,str.UrlEncode()一下
[解决办法]
Page.RegisterStartupScript( " ", " <script> window.open( 'rp_Total.aspx?departmentcode= "+Server.UrlEncode(str.ToString())+ " '); </script> ");
[解决办法]
要单引号?
str = HttpUtility.UrlEncode(str);

[解决办法]
str = str .replace( " ' ", "\\ ' ");
[解决办法]
string 换成stringBuilder试试

热点排行