現在、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 関数を呼び出すと機能します。関数名の後に「()」を入れるとうまくいきません。これを回避する方法はありますか?これを適切に機能させる方法はありますか?