DOBON.NET DOBON.NETプログラミング掲示板過去ログ

<asp:SqlDataSource SelectCommandのQueryStringFieldを画面ボタンActionで入れ替えたい

環境/言語:[Microsoft Visual Web Developer 2008 Express Edition ASP.NET (VB.NET) Framework3.5]
分類:[ASP.NET]


皆さま

いつも大変ご参考にさせていただいております。
2日間悩んで思うような解決策が見つからず投稿致しました。
ご教示、アドバイ、参考ロジックなど宜しくお願い致します。

【実現させたい事】
ASP.NET(VB.NET)でASP側で作成実行しているSQL処理の
<asp:SqlDataSource SelectCommandのQueryStringFieldを画面ボタンActionで入れ替えたい。

通常であれば
VB.NET側のPage_Load処理で(Request.QueryString("変数名"))で取得し
サーバ側処理でいろいろと処理可能だと思います。
 
VB.NET側のボタンClick処理
Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
でASP側で使用するSQLのWHERE句パラメータにデータを設定(変更)させる事が解決出来ず投稿させて頂いた次第です。

■ページ遷移時に使用しているASP側で実施しているSQLロジック
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:webshopTestConnectionString %>"
ProviderName="<%$ ConnectionStrings:webshopTestConnectionString.ProviderName %>"
SelectCommand="SELECT A.* , A.PURCHASING_AMOUNT * A.EXTRA_CHARGE AS CHARGE_SUM FROM &quot;LARGE_PACKAGE_DETAIL&quot; A WHERE (&quot;ORDER_NO&quot; = Replace( :ORDER_NO , 'H3-' , '' ) )">
<SelectParameters>
<asp:QueryStringParameter Name="ORDER_NO" QueryStringField="orderId"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>

以上になります。 
何卒、宜しくお願い申し上げます。
■No28795に返信(はちまきさんの記事)
QueryStringはURLに?を付加して指定する文字列で、QueryStringParameterはSQLの
パラメータとしてQueryStringを参照するクラス。
参照するフィールド名ではなくパラメータの値を変えたいということですかね。

ボタンを押下してQueryStringを変更するとなると当該ボタンのPostBackUrlプロパティに
orderIdを付加したURLをセットするとよいのではないでしょうか。

<asp:Button ID="Button1" runat="server" PostBackUrl="~/Default.aspx?orderId=1" Text="Button" />
■No28797に返信(もりおさんの記事)
> ■No28795に返信(はちまきさんの記事)
> <asp:Button ID="Button1" runat="server" PostBackUrl="~/Default.aspx?orderId=1" Text="Button" />
>

自己解決しそうでしたが、ロジックが肥大して困っていました。
上記方法を試してみます。

現在、取り組んでいた方法は
画面遷移時には <asp:QueryStringParameter が実行され、
自画面ボタンAction時には <asp:ControlParameter を実行するように
VB.NET(サーバ側でFlg設定)ASP側でIF文分岐でGirdView&SQLを
制御し目的の動きが出来ているか検証しておりました。

ご教示、アドバイス有難う御座います。
■No28800に返信(はちまきさんの記事)
> ■No28797に返信(もりおさんの記事)
>>■No28795に返信(はちまきさんの記事)
>><asp:Button ID="Button1" runat="server" PostBackUrl="~/Default.aspx?orderId=1" Text="Button" />
> >
>
> 自己解決しそうでしたが、ロジックが肥大して困っていました。
> 上記方法を試してみます。
>
> 現在、取り組んでいた方法は
> 画面遷移時には <asp:QueryStringParameter が実行され、
> 自画面ボタンAction時には <asp:ControlParameter を実行するように
> VB.NET(サーバ側でFlg設定)ASP側でIF文分岐でGirdView&SQLを
> 制御し目的の動きが出来ているか検証しておりました。
>
> ご教示、アドバイス有難う御座います。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板