我目前正在开发一个使用 ASP.NET 中的 Ajax Tabs 控件的项目。我的这个项目的语言是 VB.NET。我正在尝试利用选项卡上的“OnClientClick”事件。我正在使用数据库中的数据填充选项卡,并且我正在使用 VB 函数来实际创建选项卡。VB代码如下:
Protected Sub makeTab(ByVal categoryName As String, ByVal categoryId As String)
Dim label As New Label
label.Text = categoryName
Dim tab As New AjaxControlToolkit.TabPanel
tab.Controls.Add(label)
tab.HeaderText = categoryName
tab.OnClientClick = "display_alert(" + categoryId + ")"
tcResultSet.Tabs.Add(tab)
'Next
For x As Integer = 1 To tcResultSet.Tabs.Count
If tcResultSet.Tabs(tcResultSet.Tabs.Count - x).HeaderText = "Tab0" Then tcResultSet.Tabs.RemoveAt(tcResultSet.Tabs.Count - x)
Next
End Sub
为数据库返回的每条记录调用此函数。
在 ASPX 页面中,选项卡容器为:
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true" />
<asp:TabContainer ID="tcResultSet" runat="server" AutoPostBack="true" ScrollBars="auto" >
<asp:TabPanel ID="tbTab0" runat="server" HeaderText="Tab0" />
</asp:TabContainer>
我的javascript函数是:
<script type="text/javascript" >
function display_alert(categoryNumber) {
window.alert("Hello! You clicked a tab");
}
</script>
它位于页面顶部的我的页面头内。如您所见,我目前什至没有在我的 Javascript 函数中使用我的变量,但我会的。目前,此代码不起作用。如果我从 Javascript 函数定义中删除变量,并且如果我调用我的 Javascript 函数(来自我的 VB),如“display_alert”,它会起作用。如果我在函数名后包含“()”,它将不起作用。有没有办法解决?有什么办法可以正常工作吗?