2014-10-27 63 views
0

我想从事件处理程序运行一些JavaScript。这里是我的代码:从vb.net运行代码

Protected Sub RecordBottomGridRow(ByVal sender As Object, ByVal e As EventArgs) Handles GridView_Body.PageIndexChanging 
    Dim scriptText As New StringBuilder() 
    scriptText.Append("<script type=""text/javascript"">") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("function RecordBottomGridRow() {") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var elements = document.getElementsByClassName('exp');") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var expIndex;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("for (var i = 0, im = elements.length; im > i; i++) {") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var elementId = elements[i].id;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("expIndex = elementId.substring(3);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("}") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var fundCode = document.getElementById('htmlFund' + expIndex);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var e = document.getElementById('exp' + expIndex);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("document.getElementById('lastFundChosen') = fundcode.value;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("document.getElementById('expOrColl').value = e.value;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("alert(e.value);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("} </script>") 

    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "RecordBottomGridRow", scriptText.ToString(), False) 
End Sub 

注意到“警告”在那里。我运行代码并激发事件,但没有弹出窗口提示JavaScript代码没有运行。我究竟做错了什么?

+0

您的JavaScript代码在Web浏览器中的外观如何?您可以在浏览器中调试JavaScript代码。 – yW0K5o 2014-10-27 17:55:03

+0

在页面加载并调试javascript之后点击f12,这将是我的第一个建议,fyi chrome比IE更容易调试 – QBM5 2014-10-27 17:59:25

+0

@ user3715441您是否调用了JavaScript函数RecordBottomGridRow? – yW0K5o 2014-10-27 18:04:43

回答

1

你的代码只是声明了函数,它在本质上只是增加你的页面输出:

function RecordBottomGridRow() { 
..... 
} 

您需要添加客户端代码实际上通过名称调用这个函数:

RecordBottomGridRow(); 

所以在你的情况下,你可以只是替换线

scriptText.Append("} </script>") 

与(按照你的格式):

scriptText.Append("}") 
scriptText.Append(Environment.NewLine) 
scriptText.Append("RecordBottomGridRow(); </script>") 

该代码块用“}”结束函数声明,然后将调用添加到函数中以在客户端上实际执行它。