【问题标题】:VB call javascript resource code behindVB调用后面的javascript资源代码
【发布时间】:2015-12-17 20:06:04
【问题描述】:

我正在尝试传递一个字符串并从 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,请帮忙。

【问题讨论】:

  • 如果要调用javascript函数,为什么要从服务器端调用?
  • 在 btnSearch_ServerClick() 函数中,我计划添加一个下拉菜单以根据所选项目执行不同的行为。一种选择是调用 javascript,另一种是进行非 javascript 调用。
  • 好吧,我仍然不确定我是否能 100% 完成游戏,但这些天我只写 MVC! :) 我认为你的脚本需要包装在&lt;script language='javascript'&gt;&lt;/script&gt; 中才能在客户端工作。
  • 例如"&lt;script language='javascript'&gt;mySearch('" &amp; searchString &amp; "')&lt;/script&gt;"
  • 基于this问题,可能是基于名称mySearch

标签: javascript jquery asp.net vb.net


【解决方案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)是唯一的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 2023-03-20
    • 1970-01-01
    • 2010-10-20
    • 2019-09-06
    • 2011-12-02
    • 1970-01-01
    相关资源
    最近更新 更多