我有一个dropdownlist
我想在其中展示一所大学的不同分支。
当用户从中选择一个值时,与dropdownlist
该值对应的数据必须显示在网格视图中。
例如,当用户从下拉列表框中选择“信息技术”时,必须在网格视图中显示与信息技术相关的教职员工列表。
在下拉选择的索引更改方法上编写代码,该方法将通过获取值将数据绑定到gridview并将下拉属性自动回发设置为true
.aspx 文件
<asp:DropDownList id="ddlBranch" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlBranch_onSelectIndexChanged"/>
<asp:ListItem Value="1">Finance</asp:ListItem>
<asp:ListItem Value="2">Information Technology</asp:ListItem>
</asp:DropDownList>
<br/>
<br/>
<asp:GridView id="GridView1" runat="server">
你的 C# 代码
protected void ddlist_onSelectIndexChanged(object sender, EventArgs e)
{
string selectedBranch=ddlBranch.SelectedItem.Text;
DataSet dsBranchDetails=GetDataForBranch(selectedBranch);
GridView1.DataSource=dsBranchDetails;
GridView1DataBind();
}
public DataSet GetDataForBranch(string selectedBranch)
{
// your code
}
这是我的做法:
1)使用全局数据表变量来存储完整的数据。它将包含您的整个数据库表(类似于“从教职员工中选择 *”)
2)在加载时,使用该变量来填充一个gridview,也就是你在aspx中的表。通过提取大学分支的不同值并将其绑定到下拉列表,还可以使用它来构建选择框的项目列表,请参阅此帖子以获取代码
3) 将“onchange”事件附加到您的下拉列表中。在该事件的实现中,您将捕获选定的值,并可以使用默认数据视图的rowfilter 属性使用它来过滤您的数据表(这是全局的) 。完成后,您只需要触发一个新的 databind() ,将此过滤器数据绑定回您的 gridview
希望对您有所帮助...
现在,每当您从下拉列表中选择一个值时,都会分别填充网格视图。