读书人

asp.net EventHandler 传参有关问题

发布时间: 2013-07-20 11:07:48 作者: rapoo

asp.net EventHandler 传参问题
最近做了一个功能,利用服务器控件(非JS),点击BUTTON,就新增加一行。
一行内有多个服务器控件,需要重数据库绑定数据,而且会联动刷新。
贴代码:
protected void Button2_Click(object sender, EventArgs e)
{
align]TableRow tr = new TableRow();
TableCell td = new TableCell();
DropDownList dd1 = new DropDownList();
DropDownList dd2 = new DropDownList();
dd1.ID = "dd1" + MyControls.myDropDropDownList1.Count;
dd2.ID = "dd2" + MyControls.myDropDropDownList2.Count;
td.Controls.Add(dd1);
td.Controls.Add(dd2);
tr.Cells.Add(td);
Table1.Controls.Add(tr);
MyControls.myDropDropDownList1.Add(dd1);
MyControls.myDropDropDownList2.Add(dd2);
string sql = "";
DataTable dt = Get_Table(sql);
dd1.DataSource = dt.DefaultView;
dd1.DataValueField = dt.Columns[0].Caption;
dd1.DataTextField = dt.Columns[1].Caption;
dd1.DataBind();
dd1.Items.Insert(0, new ListItem("请选择", ""));
dd1.AutoPostBack = true;
dd1.SelectedIndexChanged += new EventHandler(dd1_SelectedIndexChanged);
}
protected void dd1_SelectedIndexChanged(object sender, EventArgs e)
{

}

我需要通过dd1选择的值来刷新dd2绑定的值,在dd1_SelectedIndexChanged中怎么判断是来自哪一行的dd1传过来的值?
------解决方案--------------------


用这个是判断不到的,要判断的话可以给LZ 提供一个思路,
1,要么你做分页,每次下拉将tab里面的所有的下拉框都拿出来判断一次,根据下拉框1获取一次下拉框2
2.通过其他的方法来获取,比如在后面加个
<asp:CommandField EditText="关联" ShowEditButton="True" />
在他对应protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
中可以获取e.NewEditIndex 就是选中行。
[解决办法]

protected void dd1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ss = sender as DropDownList;
int index = ss.SelectedIndex;//这里可以取到
}

读书人网 >asp.net

热点推荐