在C#和ASP.NET中,从网格视图中的组合框中获取记录
本文关键字:视图 组合 记录 获取 网格 ASP NET | 更新日期: 2023-09-27 18:26:16
hi我有三列的网格视图产品名称、单位、费率。。。。产品名称有我想要的组合框当我从组合框中选择产品时,它会从数据库中选择单位和费率,并显示在单位和费率列中。例如,如果我选择产品大米,它会在数据库中选择单元=公斤和费率=100。请指导我如何实现这一点。
据我所知,您有一个如下所示的GridView:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Value="1">Test1</asp:ListItem>
<asp:ListItem Value="2">Test2</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
你可以这样使用你的控件:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Control cont = (Control)sender;
GridViewRow row = (GridViewRow)(cont).NamingContainer;
int rowID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);
DropDownList dropdown = (DropDownList)row.Cells[0].FindControl("DropDownList1");
///now you have dropdownlist.seletedvalue
TextBox text1 = (TextBox)row.Cells[0].FindControl("TextBox1");
///now you have textbox1.text
TextBox text2 = (TextBox)row.Cells[0].FindControl("TextBox2");
///now you have textbox2.text
}