从后面的vb.net代码运行JavaScript

时间:2014-10-27 17:43:14

标签: javascript vb.net

我正在尝试从事件处理程序运行一些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代码没有运行。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的代码只是声明函数,实质上它只是添加到您的页面输出:

function RecordBottomGridRow() {
.....
}

您需要添加实际按名称调用此函数的客户端代码:

RecordBottomGridRow();

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

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

with(按照你的格式):

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

此代码块使用&#34;}&#34;完成功能声明。然后添加对函数的调用以在客户端上实际执行它。