null値をストアドプロシージャに渡す際に問題があります。オプションがドロップダウンで選択されていない場合、これをNULLとしてsqdatasourceを通してデータベースに渡すことができます。<asp:ControlParameter - sqldatasource経由でDBにNULL値を渡します。
現在、私のページには、ストアドプロシージャに渡すためのパラメータ値を保持しているいくつかのドロップダウンコントロールがあります。
これらのコントロールからいくつかの値を選択すると、グリッドビューに必要な結果が表示されますが、問題が発生するのは、値が選択されていない場合です。私はSPをチェックして、それを実行してヌル値を渡すと正しい結果が得られますので、SPに満足しています。私は
運と制御のparamaterでConvertEmptyStringToNull="true" DefaultValue=""
設定を試してみた、とドロップダウンの「ALL」オプションが
「」の値を持つSqlDataSourceコントロールのコードは次のとおりです。
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:scConnString %>"
SelectCommand="spGetOrgTickets" SelectCommandType="StoredProcedure" CancelSelectOnNullParameter="false">
<SelectParameters>
<asp:SessionParameter Name="org_id" Type="Int32" SessionField="org_id" DefaultValue="" ConvertEmptyStringToNull="false" />
<asp:ControlParameter ControlID="drpPriority" Name="priority_id" PropertyName="SelectedValue"
Type="Int32" ConvertEmptyStringToNull="true" DefaultValue="" />
<asp:ControlParameter ControlID="drpStatus" Name="status_id" PropertyName="SelectedValue"
Type="Int32" ConvertEmptyStringToNull="true" DefaultValue=""/>
</SelectParameters>
</asp:SqlDataSource>
ドロップダウンリストの1つは:
<asp:DropDownList Style="width: 100%" ID="drpStatus" runat="server" class="field select"
AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlDataSource2_Status"
DataTextField="status" DataValueField="status_id">
<asp:ListItem Value="">All</asp:ListItem>
</asp:DropDownList>
どのようなアイデアですか?
おかげでソートさ
これは私を非常に助けました。あなたに返信するには多くの人はそれをしません –
このオプションは、デフォルトではfalseにする必要があります。もしこのオプションを知らないのならば、それは非常識な時間の浪費です。 –