【问题标题】:How to display Gridview data based on Dropdown selection that exists on the Gridview itself?如何根据 Gridview 本身存在的下拉选择显示 Gridview 数据?
【发布时间】:2014-11-26 18:36:52
【问题描述】:
我有类似的数据
计划 选项 价值
计划 1 选项 1 10
计划 1 选项 2 20
计划 2 选项 1 50
计划 2 选项 2 70
计划 3 99
我想要一个 GridView 来对类似的计划进行分组,并有一个显示选项的下拉菜单。选择一个选项将在第三列中显示不同的值。
计划 |带有 [option1] 和 [option2] 的下拉菜单)由下拉选择驱动的值。
最好的方法是什么?
我希望我很清楚。
谢谢!
【问题讨论】:
标签:
c#
sql
asp.net
.net
visual-studio
【解决方案1】:
你的 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";
}