当我在DropDownList中调用一个事件时,我在Datagridview中找不到行索引。
代码是:
protected void DescriptionOfProduct_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList _DescriptionOfProduct = (DropDownList)gvSales.FindControl("DescriptionOfProduct");
Label _Unit = (Label)gvSales.FindControl("Unit");
Label _PriceType = (Label)gvSales.FindControl("PriceType");
//...
}
请给我解决方案。
答案 0 :(得分:1)
活动的发件人应该是您的下拉列表。
DropDownList myList = sender as DropDownList;
if(myList != null)
{
//Now you have your selected index myList.SelectedIndex
}
如果这是另一个,则发件人显示为其他内容。
答案 1 :(得分:1)
如果下拉列表位于gridview内部,那么您可以通过意识到它位于行内的单元格中来找到该行。因此,其父级的父级就是行。
GridViewRow currentRow = (GridViewRow)_DescriptionOfProduct.Parent.Parent;
int index = currentRow.RowIndex;
修改强>
如果你还有这方面的问题,我会建议Mitchel Sellers在他的回答中说。通过将发件人转换为下拉列表来查找下拉列表。然后你可以找到你的行。从那里,您可以通过使用行的单元格来获取每个控件来获取控件。
以下是我之前如何做到这一点的一个例子......
protected void actionList_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList list = (DropDownList)sender;
GridViewRow row = (GridViewRow)list.Parent.Parent;
Label id = (Label)row.Cells[0].Controls[1];
// etc......
}