0

現在、そのリモートWebDataMenusを使用してアイテムを動的に追加しています。フォームからアクセスしたり、定義された関数やロジックを実行するためのイベントをトリガーしたりします。

タイプイベントを介してVB.NETコードを実行したいときに問題が発生しItemClickます。このイベントは正しく機能していません。または、少なくともサーバー側で動作させることはできませんが (起動しません)、JavaScript を介してクライアント側でうまく動作します。

メニューの項目をクリックして実行すると、VB.NET コードで JavaScript エラーが発生することに注意してください。'__doPostBack' is undefinedこれを機能させ、VB.NET コードからイベントを実行するにはどうすればよいですか?

PS: 今のところ機能させるためPageMethods.WebDataMenu2_ItemClick (eventArgs.getItem (). Get_key ());EnablePageMethods = TrueScriptManager.

ただし、これにより、実行したメソッドから他のコントロールを使用できなくなり、各コントロールで初期化エラーが発生します。

  1. メニューとメニュー項目を追加します。

    -コード HTML

    <ig:webdatamenu ID="WebDataMenu2" runat="server" Font-Bold="False" 
            Font-Names="Arial Narrow" Font-Overline="False" Font-Size="10px" 
            Width="100%"  >
        <GroupSettings Orientation="Horizontal" />
        <ClientEvents ItemClick="WebDataMenu2_ItemClick" />
    </ig:webdatamenu>
    

    - メニューに項目を追加する VB.NET コード

    ut = New Infragistics.Web.UI.NavigationControls.DataMenuItem
    ut.Text = ds.Tables(0).Rows(0).Item("x1").ToString()
    ut.ToolTip = ds.Tables(0).Rows(0).Item("x1").ToString()
    ut.Key = "0"
    ut.ImageUrl = "~/ImagesToolBar/employee20.gif"
    WebDataMenu2.Items.Add(ut)
    
    
    ut = New Infragistics.Web.UI.NavigationControls.DataMenuItem
    ut.Text = ds.Tables(0).Rows(0).Item("x2").ToString()
    ut.ToolTip = ds.Tables(0).Rows(0).Item("x2").ToString()
    ut.Key = "1"
    ut.ImageUrl = "~/ImagesToolBar/timecard20.gif"
    WebDataMenu2.Items.Add(ut)
    
  2. 現在、クライアント側のイベントを追加しています

    function WebDataMenu2_ItemClick(sender, eventArgs)
    {
        if (eventArgs.getItem().get_key() != '') {
            alert('test2: ' + eventArgs.getItem().get_key());
        }
    }
    
  3. VB.NET でイベントをトリガーする VB.NET コード (ここでは、このメソッドの実行に失敗します)

    Protected Sub WebDataMenu2_ItemClick1(sender As Object, e As Infragistics.Web.UI.NavigationControls.DataMenuItemEventArgs) Handles WebDataMenu2.ItemClick
    
    
        nodotext = e
    
        Select Case nodotext
            Case "0"
                Session("IT") = 2
                Session("I") = 1
                ident = Session("I")
            Case "1"
                Session("IT") = 2
                Session("I") = 800
                ident = Session("I")
            Case "2"
                Session("IT") = 2
                Session("I") = 5
                ident = Session("I")
            Case "3"
                Session("IT") = 2
                Session("I") = 6
                ident = Session("I")
            Case "7"
                Session("IT") = 2
                Session("I") = 39
                ident = Session("I")
            Case "8"
                Session("IT") = 2
                Session("I") = 80
                ident = Session("I")
            Case "4"
                Session("IT") = 2
                Session("I") = 100
                Session("RI") = 101
            Case Else
        End Select
    
        Inicio()
    End Sub
    
4

1 に答える 1