📅  最后修改于: 2023-12-03 15:08:13.910000             🧑  作者: Mango
在ASP.NET中,GridView是一个常见的控件用于显示数据。GridView中的下拉列表可以用来让用户选择操作。在用户选择下拉列表中的值时,我们需要从GridView中获取所选的值。
为了让GridView中的每一行都有一个下拉列表,我们需要将下拉列表添加到模板字段中。下面是一个简单的下拉列表:
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:DropDownList ID="ddlActions" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlActions_SelectedIndexChanged">
<asp:ListItem Value="0">请选择</asp:ListItem>
<asp:ListItem Value="1">编辑</asp:ListItem>
<asp:ListItem Value="2">删除</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
在GridView中获取所选的项目需要处理两个事件:OnRowDataBound和OnSelectedIndexChanged。在OnRowDataBound事件中,我们需要将DropDownList控件绑定到数据,并设置所选项目的值。在OnSelectedIndexChanged事件中,我们可以从事件参数中获取所选项目的值。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//获取DropDownList
DropDownList ddlActions = (DropDownList)e.Row.FindControl("ddlActions");
//绑定数据
ddlActions.DataSource = GetData();
ddlActions.DataTextField = "Name";
ddlActions.DataValueField = "ID";
ddlActions.DataBind();
//设置所选项目的值
string selectedValue = (e.Row.DataItem as DataRowView)["Action"].ToString();
ddlActions.SelectedValue = selectedValue;
}
}
protected void ddlActions_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlActions = (DropDownList)sender;
GridViewRow row = (GridViewRow)ddlActions.NamingContainer;
string selectedValue = ddlActions.SelectedValue;
//TODO: 处理选中项的值
}
通过使用以上方法,我们可以轻松地从GridView中的下拉列表中获取所选项目。我们可以在OnSelectedIndexChanged事件中处理所选项目的值,并执行相关的操作。