我正在尝试从事件处理程序运行一些JavaScript。这是我的代码:
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 :(得分:1)
您的代码只是声明函数,实质上它只是添加到您的页面输出:
function RecordBottomGridRow() {
.....
}
您需要添加实际按名称调用此函数的客户端代码:
RecordBottomGridRow();
所以在你的情况下,你可以只替换行
scriptText.Append("} </script>")
with(按照你的格式):
scriptText.Append("}")
scriptText.Append(Environment.NewLine)
scriptText.Append("RecordBottomGridRow(); </script>")
此代码块使用&#34;}&#34;完成功能声明。然后添加对函数的调用以在客户端上实际执行它。