我尝试传递字符串并从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
,请帮忙。
答案 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)是唯一的。