我目前正在使用該遠程WebDataMenus
動態添加項目;通過它我可以從窗體訪問,甚至可以觸發事件來執行一些定義的函數或邏輯。WebDataMenu的菜單項沒有事件在服務器上觸發
問題出現在我想通過ItemClick
類型事件運行我的VB.NET代碼時,此事件無法正常工作;或者至少我不能讓它在服務器端工作(它不會觸發),但它通過JavaScript在客戶端很好。
值得一提的是,當我點擊我的菜單中的任何項目來運行時,我的VB.NET代碼給了我一個JavaScript錯誤'__doPostBack' is undefined
- 我如何才能做到這一點,並從我的VB.NET代碼運行事件? PS:爲了使它現在能夠正常工作,我通過在ScriptManager
上設置了EnablePageMethods = True
屬性,通過指令PageMethods.WebDataMenu2_ItemClick (eventArgs.getItem(). Get_key());
從JavaScript運行VB.NET函數。
但是,這不允許我使用我運行的方法中的其他控件,它會在每個控件中給我一個初始化錯誤。
我添加菜單和菜單項。
-Code 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)
目前我添加了一個客戶端事件
function WebDataMenu2_ItemClick(sender, eventArgs) { if (eventArgs.getItem().get_key() != '') { alert('test2: ' + eventArgs.getItem().get_key()); } }
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