如何基于网格视图本身上存在的下拉列表选择显示网格视图数据

本文关键字:网格 视图 下拉列表 选择 显示 数据 何基于 存在 | 更新日期: 2023-09-27 18:32:12

我有类似于

计划   选项   值
计划1 选项1       10
计划1    选项2    20
计划2    选项1    50
计划2 选项2       70
计划3                    99

我想要一个 GridView 来对类似的计划进行分组,并有一个显示选项的下拉列表。选择一个选项将在第三列中显示不同的值。

计划   | 下拉列表,其中 [选项 1] 和 [选项 2])   |     由下拉列表选择驱动的值。

最好的

方法是什么?

我希望我说得很清楚。谢谢!

如何基于网格视图本身上存在的下拉列表选择显示网格视图数据

你的 aspx 文件

<asp:GridView ID="GridView1"  AutoGenerateColumns="false" runat="server">
    <Columns>
        <asp:BoundField DataField="Plan" HeaderText="PLAN" />
        <asp:TemplateField HeaderText="OPTION">                    
            <ItemTemplate>
                <asp:DropDownList ID="DropDownList1" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" runat="server">
                    <asp:ListItem Value="-1">select</asp:ListItem>
                    <asp:ListItem Value="1">Option1</asp:ListItem>
                    <asp:ListItem Value="2">Option2</asp:ListItem>
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>
         <asp:TemplateField HeaderText ="VALUE">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            </ItemTemplate>
             </asp:TemplateField>
    </Columns>
</asp:GridView>

您的 aspx.cs 文件

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack) CreateTable();        
}
public void CreateTable()
{
    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn("Plan", typeof(string)));
    dt.Rows.Add("Plan1");
    dt.Rows.Add("Plan1");
    dt.Rows.Add("Plan2");
    dt.Rows.Add("Plan2");
    dt.Rows.Add("Plan3");
    GridView1.DataSource = dt;
    GridView1.DataBind();
} 
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList drp1 = (DropDownList)sender;
    Label lbl = new Label();
    GridViewRow grow = (GridViewRow)(drp1).Parent.Parent;
    lbl = (Label)grow.FindControl("Label1");
    lbl.Text = "bind  " + drp1.SelectedItem.Text + "  value here";      
}