最近用到了asp:Menu控件来写一个简单的web页面,想用javascript控制它翻页。用了一天的时间才想明白!太白痴了!
首先asp.Menu的用法我就不多说了,贴出前台代码:
<asp:Menu id="Menu1" Orientation="Horizontal" StaticMenuItemStyle-CssClass="tab" StaticSelectedStyle-CssClass="selectedTab" CssClass="tabs" OnMenuItemClick="Menu1_MenuItemClick" runat="server">
<Items>
<asp:MenuItem Text="基本信息" Value="0" Selected="true"/>
<asp:MenuItem Text="修改文章" Value="1"/>
<asp:MenuItem Text="编写文章" Value="2"/>
</Items>
</asp:Menu>
<asp:MultiView id="MultiView1" ActiveViewIndex="0" runat="server">
<asp:View ID="View1" runat="server">
对应"基本信息"的asp:MenuItem
</asp:View>
<asp:View ID="View2" runat="server">
对应"修改文章"的asp:MenuItem
</asp:View>
<asp:View ID="View3" runat="server">
对应"修改文章"的asp:MenuItem
</asp:View>
</asp:MultiView>
其实在后台控制asp:Menu的翻页很容易添加MenuItemClick事件再写下面的代码:
protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
{
int index = Int32.Parse(e.Item.Value);
MultiView1.ActiveViewIndex = index;
}
但是我们怎样才能用Javascript在前台控制他的翻页呢?在网上找了一天都没有结果,好像我遇到的问题别人都没有兴趣!
不过就在我要放弃的时候我突然发现在点击MenuItem项触发MenuItemClick事件的时候IE浏览器的左下角却出现了:
__doPostBack('Menu1','0')或__doPostBack('Menu1','1')或__doPostBack('Menu1','2')难道。。。。。。。。
好的贴到前台Function函数里!我哈哈!搞定!
希望此文有助于遇到同样问题的朋友们!转载请注明出处...谢谢!
对了要补充的是 我们在后台如果想用代码改变asp:Menu的ActiveViewIndex属性(当然是在MenuItemClick事件之外)就会出现前台被选中的asp:MenuItem和显示的asp:View 不一致的情况,感觉怪怪的。。。