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