• 締切済み

《ASP.net》GridViewでのボタンの扱い方

開発環境 ツール:Visual Studio2005(.NET Framework2.0) 言語:VB2005(ASP.net) - 質問 - DataTableに入れた値を、GridViewで、 下記のようにボタンと数字を、表示させています。      ボタン列     数字列 | ボタン1 ボタン2 ボタン3 | 1 | | ボタン1 ボタン2 ボタン3 | 2 | | ボタン1 ボタン2 ボタン3 | 1 | | ボタン1 ボタン2 ボタン3 | 3 | これを、 数字列が1の時は、ボタン1だけを、 数字列が2の時は、ボタン2だけを、 数字列が3の時は、ボタン3だけを、 表示させたいのですが、どのような コードを、何処に書けば実現出来るでしょうか? また、各ボタン毎に、異なる動作をさせたいのですが、 それは可能でしょうか? ボタン1を押した場合、Session("Bangou") = "1" ボタン2を押した場合、Session("Bangou") = "2" ボタン3を押した場合、Session("Bangou") = "3" という動きを行いたいのですが、、、。 ご存じの方いらっしゃいましたら、ご教授くださいm(_ _)m

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

ボタン列をテンプレート列に変換して ここに3個のボタンを配置 DataGridの RowDataBoundイベントで if e.Row.DataType = DataControlRowType.DataRow then   dim ctl as DataControlFieldCell = e.Row.Control(1)   select case ctl.Text     case "1"       e.Row.FindControl( "Button2" ).Visible = false       e.Row.FindControl( "Button3" ).Visible = false     case "2"       e.Row.FindControl( "Button1" ).Visible = false       e.Row.FindControl( "Button3" ).Visible = false     case "3"       e.Row.FindControl( "Button1" ).Visible = false       e.Row.FindControl( "Button2" ).Visible = false   End Select End if といった具合で出来そうですよ ・・・

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

まず、ボタン列でテンプレート編集をします。 ボタンのDataBindings編集でVisileまたはEnabledを選択して、カスタムの方で次のように式をいれます。 (Convert.ToInt32(Eval("[数字列のカラム名]"))) == 1 上はボタン1の時です。 同様にして、ボタン2では (Convert.ToInt32(Eval("[数字列のカラム名]"))) == 2 ボタン3では (Convert.ToInt32(Eval("[数字列のカラム名]"))) == 3 という具合にします。 イベントはボタンをそれぞれ選択し、プロパティウィンドウの稲妻ボタンをクリックし、Clickイベントをダブルクリックして、そのボタンでやりたい処理を書きます。

ysg4016
質問者

お礼

ありがとうございました!

関連するQ&A

専門家に質問してみよう