現在、ASP.NET で Ajax タブ コントロールを使用するプロジェクトに取り組んでいます。このプロジェクトの私の言語は 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 関数定義から変数を削除し、「display_alert」のように (VB から) Javascript 関数を呼び出すと機能します。関数名の後に「()」を入れるとうまくいきません。これを回避する方法はありますか?これを適切に機能させる方法はありますか?