我目前正在使用该远程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