我的代码中有这个javascript:

      function Renew()
      {
          var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID").ClientID%>');
          var ID = getCookie('SOIDTextCookie');
          txtID.value = ID;
      }


事实是,在页面加载时,它始终会输入此javascript,并且我的代码会中断,因为在编辑和查看模式下,“ txtInsertSOID”的命名不同。

我应如何防止程序在页面加载时运行此脚本?请帮忙

最佳答案

如果指定的控件不存在,则FindControl将返回null。有关更多信息,请参考MSDN Doc

<%=dvSOItem.FindControl("txtInsertSOID") != null ? dvSOItem.FindControl("txtInsertSOID").ClientID : string.Empty %>


因此,将您的代码更改为

function Renew()
{
    var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID") != null ? dvSOItem.FindControl("txtInsertSOID").ClientID : string.Empty %>');
    if(txtID != null){
        var ID = getCookie('SOIDTextCookie');
        txtID.value = ID;
    }
}

10-06 08:52