Response.Write("<script>window.opener.document.getElementById('Tabs_Panel1_TextBoxCategoryID').value='" + CategoryID.ToString() + "';window.opener.document.getElementById('Tabs_Panel1_TextBoxSelectCategoryName').value='" + CategoryName + "';window.opener.document.getElementById('Tabs_Panel1_TextBoxCategoryName').value='" + CategoryName + "';window.close();</script>");如果CategoryName有单引号,就会出错,如何解决这个问题?

解决方案 »

  1.   

    javascript:
     escape(CategoryName)或者C#:
     HttpUtility.UrlEncode(CategoryName)
    然后在父窗体中用js的unescape或者C#的UrlDecode解码
      

  2.   

    单引号是必须的吗?如果不是就把单引号过滤掉!CategoryName=CategoryName.Replace("'","");
    value='"(这个引号有用吗?)
      

  3.   

    Response.Write(" <script>window.opener.document.getElementById('Tabs_Panel1_TextBoxCategoryID').value='" + CategoryID.ToString() + "';var categoryName=\""+CategoryName+"\";
    window.opener.document.getElementById('Tabs_Panel1_TextBoxSelectCategoryName').value=categoryName+ "';window.opener.document.getElementById('Tabs_Panel1_TextBoxCategoryName').value=categoryName;window.close(); </script>"); 
    这样定义一个javascript的变量,用双引号分隔,试试
      

  4.   


    这样就可以了,谢谢Fibona