- - PR -
DataGrid項目不可視について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-26 09:04
お世話になっております。
C#.NETでWeb開発をしております。 ・DataGrid テンプレート列の値(Visible=false) ・Grid内のチェックボックスがTrueのテンプレート列の値をHTMLボタンにて別ページへ送信 を考えております。 しかし、テンプレート列を不可視にした際、クライアント側で値を取得することができずにこまっています。 このテンプレート列の幅を0に設定すれば?と思い、 ・HeaderStyle,ItemStyle,FooterStyle width=0 ・Visible=false として実行したのですが、列が表示されてしまいました。 不可視にした列の値をクライアント側で取得する方法はありますでしょうか? 以上、宜しくお願い致します。 | ||||||||
|
投稿日時: 2004-02-26 09:53
追記です。
やはりWebボタンで実現したほうが現実的なのでしょうか。 どうしても、Webボタンだと動作的に好きになれないのですが。。。 引き続き、宜しくお願い致します。 | ||||||||
|
投稿日時: 2004-02-26 10:27
不可視にしたデータグリッドの行がクライアントサイドのソースに現れないということから
サーバサイドコントロールを不可視にする=クライアントサイドに出力しない ということがいえると思います。 なので、この場合は素直にWebコントロールを使ったほうがいいのではないかと思います。 | ||||||||
|
投稿日時: 2004-02-26 10:51
なんだかよくわからないのですが。
visibleプロパティをfalseにすると、HTMLが生成されません。また、widthを0pxとしても、IEでは表示されませんが、その他のブラウザでは表示されます。 | ||||||||
|
投稿日時: 2004-02-26 10:55
NAL-6295です。
そのままの手法で実現するという前提であれば・・・ 1.表示しないテンプレート列を用意するのではなく、 2.表示するテンプレート列にHiddenコントロールを「サーバサイドで実行」にして含む。 3.サーバ側でHiddenコントロールに値をセットする。 といった事で可能だとおもいます。 HTMLボタンを押下した時に、その値を送信すればいいのです。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-02-26 10:55 ] | ||||||||
|
投稿日時: 2004-02-26 10:56
ちょっと考えてみて、不思議に思った点を
#値をかくして見えないようにするだけなら普通のBoundColumnでも問題ないわけで・・・ #不可視にするならテンプレート列を使う意味なんてないのでは? 意味不明ですね(汗 #訂正後: 列を全て不可視にするなら、別にその列を作る意味はないのでは? そのあたりの説明をお願いできますか? [ メッセージ編集済み 編集者: 無月 重造 編集日時 2004-02-26 11:01 ] | ||||||||
|
投稿日時: 2004-02-26 11:19
お返事ありがとうございます。
NAL-6295さんの方法で試してみます。 Tryしてまた、報告いたします。 (追記) やりたいことは、不可視であってVisible=falseではありません。 ブラウザはIEのみです。 「テンプレートを使う理由」 別列にHTMLボタンを配置して単一行の値を送信させるため。 「HTMLボタンを使う理由」 ターゲット名、サイズ、その他を指定するため。 | ||||||||
|
投稿日時: 2004-02-26 11:41
単一行の値を送信するだけならDataTableを作って、それをDataGridにバインドして ボタンが押されたときの、その押された行のDataRowを取り出してやればいいのでは?
ターゲット名って事は新しいページやフレームで区切られた別のページに送るのですか? それならばそのイベントでRegisterStartUpScriptメソッドを使ってほかのページを更新するJavaScriptを作って、 そこにQueryStringなりSessionなりでデータを渡してやればいいような気がするのですが・・・ まぁ、前提としてWebボタンを使うことになってしまいますが。 [ メッセージ編集済み 編集者: 無月 重造 編集日時 2004-02-26 11:41 ] |