1

我有一个绑定到 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()

任何想法为什么会这样?

4

1 回答 1

1

我最终弄清楚了这一点。问题是下拉菜单试图绑定两次,就像这个问题中的问题一样。

我使用了 Joel Etherton 的建议,现在效果很好。虽然我使用了隐藏控件而不是标签。

于 2013-03-26T14:21:06.050 回答