现在我的datagrid有一列为修改,点修改时想调用客户端的自定义函数ShowModal()来打开模式窗体,我这样写为什么总报错:报不到对象.
代码如下:if(e.CommandName=="CmdUpdate")
{
Response.Write("<script language='javascript'>ShowModal();</script>") ;
}说明:ShowModal为自定义javascript函数
===
如果代码改成直接调用javascript函数则不会有问题,如下,why?if(e.CommandName=="CmdUpdate")
{
Response.Write("<script language='javascript'>alert('hell');</script>") ;
}

解决方案 »

  1.   

    页面上有个函数没ShowModal();
    ---------------------------
    苦海无边 回头无岸
    ---------------------------
      

  2.   

    在ItemDataBound事件中加客户端响应,可以解决。
    你问题的原因是:
    当Response.Write的时候,前台页面调用ShowModal()方法,可是这个方法的代码一定是在Response.Write之后才定义的。
      

  3.   

    看我的
    private void dgDepart_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    LinkButton myLbtn = (LinkButton)e.Item.Cells[5].Controls[0];
    e.Item.Attributes.Add("ondblclick","Goto('FPhoneModal.aspx?OpFlag=1&Phone="+e.Item.Cells[0].Text.Trim()+"')");
    myLbtn.Attributes.Add("onclick","return confirm('您确定删除该条记录');");
    }
    }前台
    function Goto(strUrl){
       str=window.showModalDialog(strUrl,'','dialogheight :300px; dialogwidth :700px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:No;');
       //alert(str)
       if(str =='0')
       {
         // alert('操作失败');
          return false;
       }
       else if(str=='1')
       {
         // alert('操作成功');
        //  document.all.btnRef.focus();
          //alert('focus');
          document.all.btnRef.click();
          //alert('click');
          return false;
       }
    }
      

  4.   

    to Tom_Real() :ShowModal定义在.aspx的<head><script>中to jimu8130(IBMT43):你是将多涉操作绑定在不同事件类型上,我现在要同一个事件的处理代码中,有一段是调用客户端脚本.
      

  5.   

    还有一个方法可以试一下:
    1、在前台页面最后写一个<%#js1%>
    2、后台定义Public String js1 = "";
    3、响应事件:
    if(e.CommandName=="CmdUpdate")
    {
    js1 = "<script language='javascript'>ShowModal();</script>" ;
    this.DataBind();
    }
      

  6.   

    前台页面的ShowModal()在后台代码中用那种方式调用会由于权限问题找不到该函数,你试着可以在修改列的onclick事件中调用呀.
      

  7.   

    是showModalDialog('a.htm','','dialogwidth...')吧!
      

  8.   

    將ShowModal();放到head中的javascript中試一下