从inlinecode aspx调用javascript函数

从inlinecode aspx调用javascript函数,javascript,asp.net,inline-code,Javascript,Asp.net,Inline Code,我在下面粘贴了工作代码,其中有一个名为FormatStatus()的函数作为内联代码的一部分,实际定义在代码隐藏(C#)中。我的问题是,如果我将函数(FormatStatus())移动到外部javascript文件中,如何从内联代码调用它 <asp:Label ID="lblSts" runat="server" Text= '<%# FormatStatus(Eval("StsId").ToString()) %>' >

我在下面粘贴了工作代码,其中有一个名为FormatStatus()的函数作为内联代码的一部分,实际定义在代码隐藏(C#)中。我的问题是,如果我将函数(FormatStatus())移动到外部javascript文件中,如何从内联代码调用它

 <asp:Label ID="lblSts" runat="server" Text= '<%# FormatStatus(Eval("StsId").ToString()) %>' >                                        
          </asp:Label>

JavaScript函数只能由任何事件调用。如果您想以初始方法运行js函数,可以使用window.onload。因此,您可以在页面中创建全局javascript数组,并使用c#behind代码中的id值填充该数组,并在window.load上调用formatStatus:

if (!Page.ClientScript.IsStartupScriptRegistered("preloadArray" + this.ClientID))
{
      string script = "<script type='text/javascript'> ";
      for (int i = 0; i < ...; i++)
      {
           script += "arr.push("+i.ToString()+");";
      }
      script += "formatStatus('" + gvAdminActiveAsgnments.ClientID + "');";            
      script += "</script>";

      Page.ClientScript.RegisterStartupScript(this.GetType(),
            "preloadArray" + this.ClientID, script);
 }
if(!Page.ClientScript.isstartupscript已注册(“preload数组”+this.ClientID))
{
字符串脚本=”;
对于(int i=0;i<…;i++)
{
脚本+=“arr.push(“+i.ToString()+”);
}
脚本+=“formatStatus('”+gvAdminActiveAsgnments.ClientID+“);”;
脚本+=“”;
Page.ClientScript.RegisterStartupScript(this.GetType(),
“preload数组”+this.ClientID,脚本);
}
(您可以使用页面加载或ItemDataBound处理程序)

然后,您应该编写函数,该函数接受一个id为grid的参数:

function formatStatus(id){
 var table = document.getElementById(id);
 var rows = table.getElementsByTag('TR');
 for(var i=0; i<rows.length;i++){
   //puts into label from table row result for arr[i]
 }
}
函数格式状态(id){
var table=document.getElementById(id);
var rows=table.getElementsByTag('TR');

对于(var i=0;i您可以尝试这样做,只需确保在文档顶部包含外部js文件即可

 <asp:Label ID="lblSts" runat="server">
      <script type="text/javascript">
            document.write(FormatStatus('<%# Eval("StsId").ToString() %>');
      </script>                                       
 </asp:Label>

文件写入(格式状态(“”);
 <asp:Label ID="lblSts" runat="server">
      <script type="text/javascript">
            document.write(FormatStatus('<%# Eval("StsId").ToString() %>');
      </script>                                       
 </asp:Label>