- PR -

DataGrid内の入力値の取得

1
投稿者投稿内容
なべぞう
ベテラン
会議室デビュー日: 2003/07/07
投稿数: 98
お住まい・勤務地: 岡山県
投稿日時: 2004-12-18 12:05
こんにちは。
最近質問ばかりですみません。
ASP.NET、C#で下記、方法にて
DataGrid内のテキストボックスの入力値を取得しています。

TextBox textBox;
String aaa;
foreach(DataGridItem fff in DataGrid2.Items)
{
 textBox = (TextBox)fff.Cells[4].Controls[1];
 aaa = textBox.Text;
}

が、下記の事象の原因が分からずお手上げ状態です。

(1)レコードが10件ある場合は、ループの1件目に空文字のデータ
   が入っています。で、2件目移行に実際に入力した値が入ってい
   ます。

(2)レコードが1件のみの場合は、ループの1件目に空文字のデータ
   が入っています。で、2件目がなく、実際に入力した値は取得で
   きません。

この(1)の事象はDataGrid内にチェックボックスを配置した画面でも
確認しています。(2)は未確認です。

原因がわかる方は、申し訳ありませんが
教えていただけないでしょうか。
宜しくお願いします。
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-12-18 12:38
すみません。質問の意図を汲み取ることができません。

関係ない個所とは思いますが
 (TextBox)fff.Cells[4].Controls[1];
の個所は、
 (TextBox)fff.FindControl("TextBox1");
が良いかもしれません。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2004-12-18 15:03
やはり後段には関係ないのですが、DataGridItem にはヘッダ/フッタなども含まれるので、
foreach などによる列挙の場合には ItemType を確認したほうがよいかと思います。
なべぞう
ベテラン
会議室デビュー日: 2003/07/07
投稿数: 98
お住まい・勤務地: 岡山県
投稿日時: 2004-12-18 21:13
えんぞさん、にしざきさん
レス有難うございます。

テキストボックスの場合でいうとヘッダ、フッタにも
テキストボックスはありません。ボディのみです。

月曜日に出社した際に、findcontrol+Itemtypeで試し
てみようと思います。

1

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