電子書籍の厳選無料作品が豊富!

開発環境
ツール: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

A 回答 (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
といった具合で出来そうですよ ・・・
    • good
    • 0

まず、ボタン列でテンプレート編集をします。


ボタンのDataBindings編集でVisileまたはEnabledを選択して、カスタムの方で次のように式をいれます。
(Convert.ToInt32(Eval("[数字列のカラム名]"))) == 1
上はボタン1の時です。
同様にして、ボタン2では
(Convert.ToInt32(Eval("[数字列のカラム名]"))) == 2
ボタン3では
(Convert.ToInt32(Eval("[数字列のカラム名]"))) == 3
という具合にします。

イベントはボタンをそれぞれ選択し、プロパティウィンドウの稲妻ボタンをクリックし、Clickイベントをダブルクリックして、そのボタンでやりたい処理を書きます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/04/30 12:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!