带有DropDownList控件参数的SqlDataSource不读取值

时间:2013-03-22 20:17:44

标签: asp.net vb.net data-binding sqldatasource

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

为什么会这样?

1 个答案:

答案 0 :(得分:1)

我最终搞清楚了这个。问题是下拉列表试图绑定两次,就像this question中的问题一样。

我使用了Joel Etherton提出的建议,现在它完美无缺。虽然我使用隐藏的控件而不是标签。