C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ListBoxで複数選択後の GRIDVIEW編集機能


(過去ログ 71 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■41304 / inTopicNo.1)  ListBoxで複数選択後の GRIDVIEW編集機能
  
□投稿者/ zi_wa (3回)-(2009/09/17(Thu) 14:06:33)

分類:[.NET 全般] 

ListBoxで複数選択し、表示ボタンを押すと、結果のGRIDVIEWが表示されるPGを作成しました。
無事複数選択した条件で結果が表示されるようになったのですが、
GRIDVIEWの編集を押すと、
 画面の再読み込み→一旦ListBoxと表示するボタンのみ表示→表示するボタンを押すとGRIDVIEW(編集ができる状態)が現れる
という動きになってしまいました。
編集ボタンをクリックすると、すぐに編集ができる状態にしたいのですが、どうしたらよいか分かりません。
SelectCommandをaspxファイルからvbファイルに移動したのが関係あると思いますが、パラメータがUpdateCommandにうまく
渡ってないのでしょうか。


◆aspxファイル
GRIDVIEWを設置
ListBox_Aを設置
・SelectionMode="Multiple"
「表示」Buttonを設置

◆vbファイル
Private SelectCommand1 As [String] = "SELECT [no], [name], [age] FROM [T_JOHO] WHERE [no] IN({0})"

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
'リストボックスの選択値を取得
Dim listValue As [String] = ""
Dim sep As [String] = ""
For Each item As ListItem In ListBox_A.Items
If item.Selected Then
listValue += sep + item.Value
sep = ","
End If

Next

SqlDataSource1.SelectCommand = [String].Format(SelectCommand1, listValue)
End Sub

よろしくお願い致します。



引用返信 編集キー/
■41337 / inTopicNo.2)  Re[1]: ListBoxで複数選択後の GRIDVIEW編集機能
□投稿者/ もりお (86回)-(2009/09/18(Fri) 00:31:47)
2009/09/18(Fri) 05:53:26 編集(投稿者)
No41304 (zi_wa さん) に返信
> GRIDVIEWの編集を押すと、
>  画面の再読み込み→一旦ListBoxと表示するボタンのみ表示→表示するボタンを押すとGRIDVIEW(編集ができる状態)が現れる
> という動きになってしまいました。

SqlDataSource.SelectCommand プロパティ (System.Web.UI.WebControls)
http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.sqldatasource.selectcommand(VS.80).aspx

「SelectCommand プロパティはビューステートには格納されません」とありますので、
編集を押下してポストバックが発生した時に SelectCommand がリセットされている予感です。


ボタンのクリックイベントで SelectCommand の値をセッションに保存して、
GridView の PreRender イベントで読み出してみてはいかがでしょうか。

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    'リストボックスの選択値を取得
    Dim listValue As [String] = ""
    Dim sep As [String] = ""
    For Each item As ListItem In ListBox_A.Items
        If item.Selected Then
            listValue += sep + item.Value
            sep = ","
        End If    
    Next
    
    ' 保存
    Session("selectString") = String.Format(SelectCommand1, listValue) 
End Sub


Protected Sub GridView1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PreRender
    If Session("selectString") Is Nothing Then
        Exit Sub
    End If
    
    ' 読み出し
    SqlDataSource1.SelectCommand = DirectCast(Session("selectString"), String)
End Sub

引用返信 編集キー/
■41347 / inTopicNo.3)  Re[2]: ListBoxで複数選択後の GRIDVIEW編集機能
□投稿者/ zi_wa (4回)-(2009/09/18(Fri) 10:44:45)
2009/09/18(Fri) 10:45:19 編集(投稿者)

もりお さん

>ボタンのクリックイベントで SelectCommand の値をセッションに保存して、
>GridView の PreRender イベントで読み出してみてはいかがでしょうか。

アドバイス有り難うございました。
この方法で無事希望通りの動きになりました。

SqlDataSource.SelectCommand プロパティ (System.Web.UI.WebControls)
等の調べ方についても手不足だったようで勉強になりました。

有難うございました。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -