100分求一动态添加控件的解决方法,高手进!!
方法:使用PlaceHolder动态添加DropDownList 控件,并且设置所有的DropDownList控件都为一个SelectedIndexChanged事件,并且在SelectedIndexChanged事件中判断是来自哪个DropDownList执行的事件
求以上方法代码 谢谢
------解决方案--------------------mark帮顶一下
为了裤衩而努力
------解决方案--------------------可以在DropDownList任意一个字符串属性来区分
如第一个ToolTip= "1 "第二个ToolTip= "2 "
在执行事件的时候
if (((DropDownList)sender).ToolTip== "1 ")
{
...
}
else if (((DropDownList)sender).ToolTip== "2 ")
{
...
}
------解决方案--------------------xxxx(object sender,xxxArgs arg)
{
object o = sender as DropDownList ;
if(o != null && o.id = "ddl1 ")
// 是ddl1
}
------解决方案--------------------public sub SelectedIndexChanged(byval s as Object, byval e as EventArgs)
select case Integer.Parse(s.id)
case 0 ...
case 1 ...
...
end sub
说明:当所有的控件都调用一个方法的时候,.net自身就可以实现你所需要的功能。在参数栏里,s就是你所点击的控件,然后获取该控件的属性进行判断,就可以具体判断是哪个控件。e是你点击的事件,可以通过判断e的事件而操作不同的过程。
------解决方案--------------------代码如下:
DropDownList dp1 = new DropDownList();
dp1.ID = "dp1 ";
//还可以设置一些绑定的数据
//dp1.DataSource = dt;
//dp1.DataValueField = "ID ";
//dp1.DataTextField = "Name ";
//dp1.DataBind();
//设置所有的DropDownList控件都为一个dropdownSelectedIndexChanged事件
dp1.SelectedIndexChanged += new EventHandler(dropdownSelectedIndexChanged);
this.PlaceHolder1.Controls.Add(dp1);
//dropdownSelectedIndexChanged事件判断来自那个dropdownlist
protected void dropdownSelectedIndexChanged(object sender, EventArgs e)
{
DropDownList drp = (DropDownList)e;
string strId = drp.ID; //取得dropdownlist的ID
switch (strId)
{
case "dp1 ": //是dp1触发了这个事件
//执行你的代码,其他的类似
break;
default:break;
}
}
------解决方案--------------------DropDownList ddl = (DropDownList)sender;
Console.Write(ddl.Id + "点击的事件 ");
------解决方案-------------------- for(int i = 0 ;i < 10;i++)
{
DropDownList DropDown = new DropDownList();
DropDown.ID= "ControlID " + i.ToString();
DropDown.SelectedIndexChanged += .............
PlaceHolder1.Controls.Add(DropDown);
}
出什么错??
------解决方案--------------------给你做了个案例,自己看一下
private void CreateControls()
{
DropDownList drop = new DropDownList();
drop.ID = "drop1 ";
drop.Items.Add(new ListItem( "11111 ", "111111 "));
drop.Items.Add(new ListItem( "22222 ", "22222 "));
drop.Items.Add(new ListItem( "33333 ", "1111333311 "));
drop.Items.Add(new ListItem( "44444 ", "1144441111 "));
drop.AutoPostBack = true;
drop.SelectedIndexChanged += new EventHandler(drop_SelectedIndexChanged);
this.PlaceHolder1.Controls.Add(drop);
drop = new DropDownList();