作者:4lert
asp.net的multiview控件提供了一个展示多个panle但只在一个显示一个panle的作用。
具体显示那个是由控件的ActiveViewIndex控制的。默认是0。
有时候我们需要在后台动态的创建出我们View。直接给出代码。简单的东西,废话不多说了。
前台需要有一个ID为test的multiview控件。
using
System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected override void OnPreInit(EventArgs e)
{
createView();
base .OnPreInit(e);
}
protected void Page_Load( object sender, EventArgs e)
{
}
private void createView()
{
for ( int i = 0 ; i < 3 ; i ++ )
{
View view = new View();
view.ID = " view1 " + i.ToString();
Button button = new Button();
button.ID = " btn " + i.ToString();
button.Text = " btn " + i.ToString();
button.Click += new EventHandler(button_Click);
view.Controls.Add(button);
test.Controls.Add(view);
}
}
void button_Click( object sender, EventArgs e)
{
if (( int ) this .test.ActiveViewIndex < 2 )
{
this .test.ActiveViewIndex ++ ;
}
else
{
Response.Write( " 没了! " );
}
}
}
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected override void OnPreInit(EventArgs e)
{
createView();
base .OnPreInit(e);
}
protected void Page_Load( object sender, EventArgs e)
{
}
private void createView()
{
for ( int i = 0 ; i < 3 ; i ++ )
{
View view = new View();
view.ID = " view1 " + i.ToString();
Button button = new Button();
button.ID = " btn " + i.ToString();
button.Text = " btn " + i.ToString();
button.Click += new EventHandler(button_Click);
view.Controls.Add(button);
test.Controls.Add(view);
}
}
void button_Click( object sender, EventArgs e)
{
if (( int ) this .test.ActiveViewIndex < 2 )
{
this .test.ActiveViewIndex ++ ;
}
else
{
Response.Write( " 没了! " );
}
}
}
如果该程序在母版页中,可能出现找不到multiview控件。那么可以尝试使用Page.Master.FindControl("")一级一级的往下面找即可。