如何根据Gridview本身存在的下拉选项显示Gridview数据?

时间:2014-11-26 18:36:53

标签: c# sql asp.net .net visual-studio

我的数据类似于

计划选项价值
Plan1选项1 10
Plan1选项2 20
Plan2选项1 50
Plan2 option2 70
Plan3 99

我希望GridView将类似的计划分组并显示选项的下拉列表。选择一个选项将在第三列中显示不同的值。

计划|使用[option1]和[option2])下拉列表下拉选择驱动的价值。

最好的方法是什么?

我希望我很清楚。 谢谢!

1 个答案:

答案 0 :(得分:0)

您的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";      
}