C# 如何从代码隐藏更新DropDownList的SQLDataSource
我有两个下拉列表:C# 如何从代码隐藏更新DropDownList的SQLDataSource,c#,asp.net,drop-down-menu,C#,Asp.net,Drop Down Menu,我有两个下拉列表: <td style="width: 20%;"> <!-- TASK NAME --> <asp:DropDownList ID="ddlTaskName" DataSourceID="dsPopulateTaskName" AutoPostBack="true" DataValueField="Task Name" runat="server" AppendDataBoundItems="true" OnSelectedInde
<td style="width: 20%;">
<!-- TASK NAME -->
<asp:DropDownList ID="ddlTaskName" DataSourceID="dsPopulateTaskName" AutoPostBack="true" DataValueField="Task Name" runat="server" AppendDataBoundItems="true" OnSelectedIndexChanged="ddlTaskName_onSelectIndexChanged">
<asp:ListItem Text="All" Value="%"></asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="dsPopulateTaskName" runat="server" ConnectionString="<%$ ConnectionStrings:gc %>" SelectCommand=""></asp:SqlDataSource>
</td>
<td style="width: 20%;">
<!-- SERVICE -->
<asp:DropDownList ID="ddlService" DataSourceID="dsPopulateService" AutoPostBack="true" DataValueField="Service" runat="server" AppendDataBoundItems="true" OnSelectedIndexChanged="ddlService_onSelectIndexChanged">
<asp:ListItem Text="All" Value="%"></asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="dsPopulateService" runat="server" ConnectionString="<%$ ConnectionStrings:gc %>" SelectCommand=""></asp:SqlDataSource>
</td>
加载页面时,所有内容都以%
开头,并正确填充下拉列表。如果我从ddlService
dropdownlist中选择一个选项,则dsPopulateTaskName.SelectCommand
将显示正确的查询以重新填充ddlstaskname
dropdownlist,但不会更新它
请帮我解决这个问题。设置
SelectCommand
后,您应该调用ddlService.DataBind()
和ddlstaskname.DataBind()
,我的意思如下:
dsPopulateTaskName.SelectCommand =
@"SELECT DISTINCT [tcol] 'Task Name'" + strForDropDownList + strWhere;
ddlService.DataBind();
dsPopulateService.SelectCommand =
@"SELECT DISTINCT scol 'Service'" + strForDropDownList + strWhere;
ddlTaskName.DataBind();
希望对您有所帮助谢谢。我的代码是这样的:
ddlstaskname.Items.Clear();ddlstaskname.DataBind()代码>,它工作正常,只是我丢失了应该始终存在的所有
。您不必使用该行:ddlstaskname.Items.Clear();它将在databindingwell上刷新,如果要更新SelectIndexChanged中的dropdownlist,请调用ddlTaskName.DataBind();在SelectIndex中,设置SelectCommand后交换
dsPopulateTaskName.SelectCommand =
@"SELECT DISTINCT [tcol] 'Task Name'" + strForDropDownList + strWhere;
ddlService.DataBind();
dsPopulateService.SelectCommand =
@"SELECT DISTINCT scol 'Service'" + strForDropDownList + strWhere;
ddlTaskName.DataBind();