我目前正在使用该遥控器WebDataMenus
来动态添加项目;通过它我可以从表单访问,甚至触发事件以执行定义的某些功能或逻辑。
当我想通过ItemClick
类型事件运行我的 VB.NET 代码时出现问题,该事件无法正常工作;或者至少我不能让它在服务器端工作(它不会触发),但它通过 JavaScript 在客户端工作得很好。
值得一提的是,当我单击要运行的菜单中的任何项目时,我的 VB.NET 代码给了我一个 JavaScript 错误'__doPostBack' is undefined
- 我怎样才能使它工作并从我的 VB.NET 代码运行事件?
PS:为了让它现在工作,我PageMethods.WebDataMenu2_ItemClick (eventArgs.getItem (). Get_key ());
通过EnablePageMethods = True
在ScriptManager
.
但是,这不允许我使用我运行的方法中的其他控件,它会在每个控件中给我一个初始化错误。
我添加菜单和菜单项。
-代码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