1

SqlDataSource にバインドされたドロップダウン リストがあります。

別の SqlDataSource にバインドされた別のドロップダウン リストがあります。

2 番目の 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()

しかし、私は何の結果も得られません。ただし、2 番目の SqlDataSource のコントロール パラメーターをテキスト ボックスに設定すると、機能します。たとえば、これは機能します:

<asp:ControlParameter ControlID="txt" Name="param"
    PropertyName="Text"
    ConvertEmptyStringToNull="true" />

txt.Text = "someValue"
dropDown2.DataBind()

これはなぜですか?

4

1 に答える 1

1

私はこれを理解することになりました。問題は、この質問の問題と同じように、ドロップダウンが 2 回バインドしようとしていたことでした。

Joel Etherton の提案を使用したところ、完全に機能するようになりました。ラベルではなく隠しコントロールを使用しましたが。

于 2013-03-26T14:21:06.050 に答える