システムにログインしているユーザーに応じて、2 つのストアド プロシージャのうちの 1 つを使用できるように、GridView の SQLDataSource を動的に選択する必要があるアプリがあります。
私の問題は、ボタンクリックでこのようなロジックを使用していることです...
If Session("SiteType") = "Type1" Then
GridView1.DataSourceID = "SqlDataSource2"
Else
GridView1.DataSourceID = "SqlDataSource1"
End If
GridView1.DataBind()
これは、グリッドビューを含むパネルを表示するボタンをクリックすると発生します。
次に、ユーザーは変更を行い (基本的には、グリッドの 1 つまたは複数のラインでテキスト ボックスを調整します)、[保存] をクリックします。ただし、これが発生すると、グリッドビューはその DataSourceID を認識しなくなるため、グリッドビューの行を調べようとすると、何もありません。
保存ボタンをクリックして同じコードを入力すると、(もちろん) フォームで行ったデータの変更がすべて無効になります。
簡単に言えば、プログラムがグリッドビューに関連付けられた SqlDataSourceID をサイクルの終わりまで保持するように、SqlDataSource を動的に選択するにはどうすればよいでしょうか。これはViewStateのことですか?ViewState がよくわかりません...
私の無知を許してください - これはちょっと単純だと思いますが、.NET の経験があまりありません。より良い方法があれば、私もそれを聞きたいと思います - とはいえ、時間は本質的なものなので、今すぐ簡単な修正を探しています (ボスが私の首を呼吸しています.. ふふ) .
ありがとう!