📜  如何从 GridView 中的下拉列表中获取所选项目 (1)

📅  最后修改于: 2023-12-03 15:08:13.910000             🧑  作者: Mango

如何从 GridView 中的下拉列表中获取所选项目

在ASP.NET中,GridView是一个常见的控件用于显示数据。GridView中的下拉列表可以用来让用户选择操作。在用户选择下拉列表中的值时,我们需要从GridView中获取所选的值。

步骤1: 在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>
步骤2: 获取所选项目

在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事件中处理所选项目的值,并执行相关的操作。