首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

100分求一动态添加控件的解决办法,

2012-03-11 
100分求一动态添加控件的解决方法,高手进!!方法:使用PlaceHolder动态添加DropDownList控件,并且设置所有的

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();


drop.ID = "drop2 ";
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);
}

void drop_SelectedIndexChanged(object sender, EventArgs e)
{
this.TextBox1.Text = ((DropDownList)sender).ID;
}

动态创建了两个DropDownList,在事件中强制转换就可以得到所点击的DropDownList,然后你就可以得到它所有属性了
[解决办法]
study~~~~~~~
[解决办法]
mark

热点排行