前台a.aspx文件,有一个验证控件<asp:RequiredFieldValidator runat="server" ErrorMessage="请填写标题" ControlToValidate="title"/>用于验证title文本匡是否有填写,还有一个图形按钮<asp:ImageButton ID="nw" ImageUrl="../../images/select.gif" runat="server"/>,用于点击时打开一个页面选择内容,其实现的后台编码a.aspx.cs如下
public void Page_Load(object sender,System.EventArgs e)
  {
  if(!IsClientScriptBlockRegistered("clientScript")) 
{
string strScript="<script>function OpenWin(){var str=window.showModalDialog('user.aspx',document.Form1.users.value,'dialogWidth:455px; dialogHeight:480px;');document.Form1.users.value=str}</script>";
RegisterClientScriptBlock("clientScript", strScript);
}
  nw.Attributes.Add("onclick", "OpenWin()");
}
结果打开页面就提示出错当前页的脚本出错,如果取消后台的这段注册的编码就没问题,不知道该如何解决?

解决方案 »

  1.   

    试试看
    if (page.valid)
    {
    }
      

  2.   

    string strScript="<script>function OpenWin(){var str=window.showModalDialog('user.aspx',document.Form1.users.value,'dialogWidth:455px; dialogHeight:480px;');document.Form1.users.value=str}</script>";
    RegisterClientScriptBlock("clientScript", strScript);
    }
    你把openwin这js函数直接写在aspx中不行吗?
      

  3.   

    RegisterClientScriptBlock改成RegisterStartupScript
      

  4.   

    不用验证控件了 用Javascript验证title文本匡是否有填写
      

  5.   

    研究到最后,发现是由于nw.Attributes.Add("onclick", "OpenWin()");这一句造成的,应该改成nw.Attributes.Add("onclick", "OpenWin();");少写了一个分号,如果不用验证控件就不会有问题,如果同时用了就出错,看来js和asp.net之间相互工作的还不是很完美,只好散分了