1
一個DropDownList的SqlDataSource的我有兩個dropdownlists:如何更新從代碼隱藏
<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>
代碼隱藏在Page_Load
:
strForDropDownList = @" FROM [Db].[dbo].[table1] WHERE [stat] = 'A'";
string pol = " AND ";
if (ddlTaskName.SelectedIndex == 0)
{
pol += " ([tcol] LIKE '%' OR [tcol] IS NULL) AND ";
}
else
{
pol += " [tcol] = '" + ddlTaskName.SelectedValue.TrimEnd() + "' AND ";
}
if (ddlService.SelectedIndex == 0)
{
pol += " (scol LIKE '%' OR scol IS NULL) AND ";
}
else
{
pol += " scol = '" + ddlService.SelectedValue.TrimEnd() + "' AND ";
}
strWhere = pol;
dsPopulateTaskName.SelectCommand = @"SELECT DISTINCT [tcol] 'Task Name'" + strForDropDownList + strWhere;
dsPopulateService.SelectCommand = @"SELECT DISTINCT scol 'Service'" + strForDropDownList + strWhere;
頁面加載時,一切都與%
開始,正確填充下拉列表。如果我選擇從下拉列表ddlService
一個選項,dsPopulateTaskName.SelectCommand
顯示正確的查詢重新填充ddlTaskName
下拉列表,但它並沒有更新。
請幫我解決這個問題。
謝謝。我有這樣的:'ddlTaskName.Items.Clear(); ddlTaskName.DataBind();'它工作正常,除了我失去了'應該始終存在的所有'。 – SearchForKnowledge 2015-03-13 14:55:16
你不必使用該行:ddlTaskName.Items.Clear();它會刷新數據綁定 – 2015-03-13 15:02:14
我試過了,它沒有工作。讓我再嘗試一次。 – SearchForKnowledge 2015-03-13 15:05:56