背景:
续写原生JS中Tab切换,在Asp.net中也会经常用到类似前端的Tab切换的效果,但是使用前端的无论是原生还是jq的写法都不能很好的实现这些效果,其中因为在每个Tab中使用定义不同的控件,由于控件的事件在执行的时候都会触发PageLoad事件所以无法很好的定位到tab中的某个内容页,所以就想着前端如果不行就考虑着自定义Tab控件,但是效果并不好,同样还是因为在不同的Tab页中的事件原因造成不能定位到特定Tab内容页面。
1.自定义控件:
- 实现思路:通过menu+MenuItem和MultiView+View进行实现
- 页面中添加menu控件,用menu中MenuItem作为Tab切换中的按钮
- 页面中添加MultiView控件,添加跟MenuItem相同数目的View用于存放内容
- 添加MenuItem事件
-
protected void Menu1_MenuItemClick(object sender, MenuEventArgs e) { this.MultiView1.ActiveViewIndex = int.Parse(e.Item.Value); //将 MultiView 控件的 ActiveViewIndex 属性设置为要显示的 View 控件的索引值。 //如果不想显示任何 View 控件,则将此属性设置为 -1。 //在这里Item.Value是你为Menu控件添加Item时指定的Value值。 //这个值对应你想要在这个Item点击时显示时的View控件的索引值 }
注意:可以在添加MultiView控件时就为他的ActiveViewIndex指定一个值。这样就能实现默认显示某个页面的效果。<