每个下拉列表都添加了默认列表项。
从ddlA
中选择一个选项时,ddlB
中的项目将被过滤。
问题
使用 ASP.NET 过滤器参数时,默认列表项value=0
将从ddlB
中删除/过滤掉。
问题
过滤列表时,如何将默认列表项保留或重新添加到ddlB
?
DROPDOWNLIST
<asp:DropDownList ID="ddlA" runat="Server" DataSourceID="sqlA" DataTextField="TextA" DataValueField="ValueA" AppendDataBoundItems="true" AutoPostBack="true">
<asp:ListItem Text="Select ..." Value="0"/>
</asp:DropDownList>
<asp:DropDownList ID="ddlB" runat="Server" DataSourceID="sqlB" DataTextField="TextB" DataValueField="ValueB" AppendDataBoundItems="true">
<asp:ListItem Text="Select ..." Value="0"/>
</asp:DropDownList>
DATASOURCE
<asp:SqlDataSource ID="sqlA" runat="Server" SelectCommand="spA" SelectCommandType="StoredProcedure"/>
<asp:SqlDataSource ID="sqlB" runat="Server" SelectCommand="spB" SelectCommandType="StoredProcedure" FilterExpression="ValueA= '{0}'">
<FilterParameters>
<asp:ControlParameter Name="Col" ControlID="ddlA" PropertyName="SelectedValue"/>
</FilterParameters>
</asp:SqlDataSource>
答案 0 :(得分:1)
您需要在数据源中具有此初始值,因此在创建数据源时,您需要
SELECT 'Select' as TextA, 0 as ValueA
JOIN
Select TextA, ValueA from yourTable
这些值将绑定到DropDownLists并保留在那里 还有一件事。请记住在重新过滤之前删除过滤器
SqlDataSource1.FilterExpression=""