- PR -

DataGridに追加したTextBoxの値

投稿者投稿内容
SQ☆ふみ
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 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 - 指定された引数は、有効な値の範囲内にありません。
とエラーになります。

どなたか教えてください。お願いします。
Milan
常連さん
会議室デビュー日: 2005/01/05
投稿数: 33
投稿日時: 2005-02-08 14:48
こんにちは。

ASP.NETを使用しているのだと思いますけど、

1回目のItemCommandではTextBoxを作成しコントロールを追加している。
2回目のItemCommandではTextBoxを作成していない。

だから
e.Item.Cells(2).Controls.Item(0)で
System.ArgumentOutOfRangeException
が起きているのだと思います。
SQ☆ふみ
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2005-02-08 15:05
お返事ありがとうございます^^

2回目のItemCommandではTextBoxを作成していませんけど、
もう1度作成したら、TextBoxの中身が空になりますよね?

1回目で作ったTextBoxの値を2回目で取得したいのです。
Milan
常連さん
会議室デビュー日: 2005/01/05
投稿数: 33
投稿日時: 2005-02-08 15:54
説明下手なので、、この辺りが参考になると思います。
http://www.atmarkit.co.jp/fdotnet/dotnettips/081editdg/editdg.html

このサンプルに不定列数の処理が入れば、想像どおりの動作になるのではないかと。
SQ☆ふみ
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2005-02-08 16:39
ありがとうございます。早速、見てみました!

手順5:[更新]ボタンの処理 の
TextBox tb1 = (TextBox)e.Item.Cells[1].Controls[0];
が、ポイントだと思うのですが C言語がわからなくて・・・(^^;)

この1行、VBに訳して頂けると嬉しいのですが(甘い?笑)
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-02-08 16:51
こんにちは。

VBだと
コード:


Dim txt1 As TextBox
txt1 = CType(e.Item.Cells[1].Controls[0], TextBox)





[ メッセージ編集済み 編集者: SE卵 編集日時 2005-02-08 16:52 ]

[ メッセージ編集済み 編集者: SE卵 編集日時 2005-02-08 16:52 ]
Milan
常連さん
会議室デビュー日: 2005/01/05
投稿数: 33
投稿日時: 2005-02-08 17:04
環境はVB.NETと記述してあるのにもかかわらず、
C#のサンプルを紹介してしまい申し訳ありませんでした。
よくやってしまうのですが、以後気をつけます。

SE卵さん、フォロー有難うございました。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2005-02-08 17:06
ところで、textboxに入っている値ってどこに保持しているんですか?Session?
それと、ボタン等押してってことはPostBackが発生してるんじゃ?
だったら動的に作ったtextboxは値ごとクリアされちゃいますよね?
_________________
まゆりん @ わんくま同盟
Blog る。

スキルアップ/キャリアアップ(JOB@IT)