VB调用

时间:2015-12-17 20:06:05

标签: javascript jquery asp.net vb.net

我尝试传递字符串并从vb.net后面的代码调用javascript函数,一旦我点击一个按钮。 javascript位于单独的文件中。

以下是按钮的代码:

/MyProject/myfile.aspx

<HTML>
...
...
<asp:textbox id="txtSearch" runat="server" Width="120px" CssClass="midField"></asp:textbox>
<input class="midBtn" id="btnSearch" type="button" value="Search" name="btnSearch" runat="server">
...
...
<script src='<%= Page.ResolveClientUrl("~/script/functions/myFunc.js")%>' ></script>
</HTML>

/MyProject/myfile.aspx.vb

Private Sub btnSearch_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.ServerClick
   Dim searchString As String
   searchString = txtSearch.Text
   Dim rsname As String = Page.ResolveClientUrl("~/script/functions/myFunc.js")

   Page.ClientScript.RegisterStartupScript(Me.GetType(), "mySearch", "mySearch('" & searchString & "')", True)
End Sub

/MyProject/script/functions/myFunc.js

function mySearch(searchString){
// ...
// logic for mySearch
// ...
}

我无法调用javascript函数,我需要在.apsx页面的末尾引用.js文件。我从调试器得到的错误是Uncaught ReferenceError: mySearch is not defined,请帮忙。

1 个答案:

答案 0 :(得分:1)

如果选择的标准是下拉列表,可能更好的解决方案(我使用jquery)将js文件放在页面的末尾,并检查来自javascrpit的下拉值(此处设置为变量)并拦截回发.NET按钮:

<script type="text/javascript">
    $(document).ready(function () {
        var dropdown = 1;
        $('.midBtn').click(function () {
            if (dropdown == 1) {
                mySearch($('.midField').val());
                return false;
            } else {
                // ... postback
            }

        });
    });
</script>

在这种情况下,您必须确保类选择器(midBtn和midField)是唯一的。