asp.net multiview控件如何自动添加view
作者: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("")一级一级的往下面找即可。