我有一个绑定到SqlDataSource的下拉列表。
我有另一个下拉列表,它绑定到不同的SqlDataSource。
第二个SqlDataSource将第一个下拉列表作为控制参数。
我正在尝试这样做......
<asp:SqlDataSource ID="sqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM Test WHERE Param = @param;"
CancelSelectOnNullParameter="true">
<SelectParameters>
<asp:ControlParameter ControlID="dropDown1" Name="param"
PropertyName="SelectedValue"
ConvertEmptyStringToNull="true" />
</SelectParameters>
</asp:SqlDataSource>
dropDown1.SelectedValue = "someValue"
dropDown2.DataBind()
但我没有得到任何结果。但是,如果我将第二个SqlDataSource的控件参数设置为文本框,它可以工作。例如,这有效:
<asp:ControlParameter ControlID="txt" Name="param"
PropertyName="Text"
ConvertEmptyStringToNull="true" />
txt.Text = "someValue"
dropDown2.DataBind()
为什么会这样?
答案 0 :(得分:1)
我最终搞清楚了这个。问题是下拉列表试图绑定两次,就像this question中的问题一样。
我使用了Joel Etherton提出的建议,现在它完美无缺。虽然我使用隐藏的控件而不是标签。