- - PR -
DataGridに追加したTextBoxの値
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-08 14:00
いつもお世話になってます。
VB.NET の DataGrid について教えてください。 列数が不定なので、ItemCommand時にTextBoxコントロールを追加しています。 ------------------------------------------------------------------------------------------- Dim txt1 As New TextBox txt1.Text = "テスト文字列" txt1.id = "txt1" e.Item.Cells(2).Controls.Add(txt1) ------------------------------------------------------------------------------------------- この時、 ctype(e.Item.Cells(2).Controls.Item(0).FindControl("txt1"), TextBox).Text には、 "テスト文字列" が入ったのを確認できました。 がっ! 再びボタン等を押して、ItemCommand時になると、(別のCommandNameなので、上のTextBox追加ロジックは通りません) ctype(e.Item.Cells(2).Controls.Item(0).FindControl("txt1"), TextBox).Text は、 実行時例外がスローされました : System.ArgumentOutOfRangeException - 指定された引数は、有効な値の範囲内にありません。 とエラーになります。 どなたか教えてください。お願いします。 | ||||
|
投稿日時: 2005-02-08 14:48
こんにちは。
ASP.NETを使用しているのだと思いますけど、 1回目のItemCommandではTextBoxを作成しコントロールを追加している。 2回目のItemCommandではTextBoxを作成していない。 だから e.Item.Cells(2).Controls.Item(0)で System.ArgumentOutOfRangeException が起きているのだと思います。 | ||||
|
投稿日時: 2005-02-08 15:05
お返事ありがとうございます^^
2回目のItemCommandではTextBoxを作成していませんけど、 もう1度作成したら、TextBoxの中身が空になりますよね? 1回目で作ったTextBoxの値を2回目で取得したいのです。 | ||||
|
投稿日時: 2005-02-08 15:54
説明下手なので、、この辺りが参考になると思います。
http://www.atmarkit.co.jp/fdotnet/dotnettips/081editdg/editdg.html このサンプルに不定列数の処理が入れば、想像どおりの動作になるのではないかと。 | ||||
|
投稿日時: 2005-02-08 16:39
ありがとうございます。早速、見てみました!
手順5:[更新]ボタンの処理 の TextBox tb1 = (TextBox)e.Item.Cells[1].Controls[0]; が、ポイントだと思うのですが C言語がわからなくて・・・(^^;) この1行、VBに訳して頂けると嬉しいのですが(甘い?笑) | ||||
|
投稿日時: 2005-02-08 16:51
こんにちは。
VBだと
[ メッセージ編集済み 編集者: SE卵 編集日時 2005-02-08 16:52 ] [ メッセージ編集済み 編集者: SE卵 編集日時 2005-02-08 16:52 ] | ||||
|
投稿日時: 2005-02-08 17:04
環境はVB.NETと記述してあるのにもかかわらず、
C#のサンプルを紹介してしまい申し訳ありませんでした。 よくやってしまうのですが、以後気をつけます。 SE卵さん、フォロー有難うございました。 | ||||
|
投稿日時: 2005-02-08 17:06
ところで、textboxに入っている値ってどこに保持しているんですか?Session?
それと、ボタン等押してってことはPostBackが発生してるんじゃ? だったら動的に作ったtextboxは値ごとクリアされちゃいますよね? _________________ まゆりん @ わんくま同盟 Blog る。 |