ASP.net Gridview 的 Itemtemplate 中使用下拉列表框

3
我正在使用C# ASP.NET,并相对新手,需要完成以下任务。
在我的VS2010 Web应用程序项目中,我有一个webform和一个Gridview,它从表格中获取数据。
在Grid中,我有一个Commandfiled按钮(column1)和一个Item模板与Dropdownlist(column2)。
用例是,用户首先从3个列表项(H、L和M)中选择一个listitem,然后选择命令按钮。
我无法弄清如何从所选行中提取所选的listitem。
protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
{

    GridViewRow row = GridView2.SelectedRow;
    Label4.Text = "You selected " + row.Cells[4].Text + "."; 
    Label5.Text = "You selected this list item from dropdownlist " + ???? ; 
}

感谢您的提前帮助。
1个回答

2
GridViewRow对象提供了方法FindControl(所有容器控件都有)通过id获取行中的控件。例如,如果你的DropDownList的id为MyDropDown,你可以使用以下代码访问它的选定值:
GridViewRow row = GridView2.SelectedRow;
DropDownList MyDropDown = row.FindControl("MyDropDown") as DropDownList;
string theValue = MyDropDown.SelectedValue;
// now do something with theValue

这是访问GridView中所有控件的推荐方法。尽可能避免像row.Cells[#]这样的操作,因为当您重新排列或添加/删除GridView的列时,它很容易出错。


感谢您提供的解决方案和避免单元格索引的提示。 - user219628

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接