- PR -

ASP.NET2.0 GridView内のテキストボックスの編集データを参照出来ない

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/04/11
投稿数: 1
投稿日時: 2007-04-11 08:42
以下、ご質問がありますので、どなたか御存知の方、回答頂けないでしょうか?

【環境】
WinXpPro,VB.NET2005,ASP.NET2.0

【質問内容】
ASP.NET2.0で使用されるGridViewで質問があります。
Gridview内にテンプレートフィールドを追加し、
ItemTemplate内に、ラベルとテキストボックスを配置し、
又、CommandFieldを追加し、Gridview内のデータを編集・更新・キャンセル
出来るようにしています。

GridView内に配置したテキストボックスの値を、編集ボタンが表示されている状態
(表示モード)で、ブラウザよりテキストボックスの値を変更し、編集ボタンが押下されたときに発生するイベント(RowEditing)内で変更されたテキストボックスの
値を取得したいのですが、取得出来ないようです。

Gridviewの外にボタンを配置し、ボタン押下時に以下のソースを記述すると、
編集されたテキストボックスの値が取得できるようです。

なんとか、RowEditingイベント発生時にテキストの編集後の状態を
取得したいのですが、取得できる方法が分かる方いらっしゃいましたら、
ご教授頂けないでしょうか?

これが出来ないと、CommandFieldを使用した動的なテキストの編集って出来ないよう
な気がするのですが。宜しく御願い致します。

ちなみにItemTemplate列のテキストボックスの
DataBindingsプロパティ内のTextのカスタムバインドには何も設定しておりません。

以下、ソースを記述します。
Protected Sub gvwLst_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvwLst.RowEditing
'セッションのページ数、一覧データを再バインド
gvwLst.EditIndex = e.NewEditIndex

Dim ctlTxt As New Web.UI.WebControls.TextBox 'テキストボックスコントロール
dim straaa as string

ctlTxt = gvwLst.Rows(gvwLst.EditIndex).FindControl("aaa")
straaa = ctlTxt.text
End Sub
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-04-11 11:58
引用:
Gridviewの外にボタンを配置し、ボタン押下時に以下のソースを記述すると、
編集されたテキストボックスの値が取得できるようです。

Gridviewの外だったらNewEditIndexって使えない気がするのですが。

引用:
なんとか、RowEditingイベント発生時にテキストの編集後の状態を
取得したいのですが、取得できる方法が分かる方いらっしゃいましたら、
ご教授頂けないでしょうか?

当方ではご提示のソースで文字列が取得できましたが(straaaは""で初期化するよう修正しましたけど・・)、
コントロールがネストしてたりしないですよね。

引用:
これが出来ないと、CommandFieldを使用した動的なテキストの編集って出来ないよう
な気がするのですが。宜しく御願い致します。

GridViewは主にコントロールをバインドさせてDataSourceのUpdateQueryとかと組み合わせて、
コーディング無しでもろもろの処理を行います。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-04-11 12:46
Updatingイベント内であれば、更新前のデータと更新しようとしているデータを
取り出すことができるようになっています。
動的なテキストの変更といっても通常はこの仕組みがあればいいように思いますが。

そもそも表示モードなのにデータを入力して、編集モードに入るタイミングで
データに変更をいれようというのは何か使い方が違うような気がしますが。。。

ただ、べるさんが文字を取得できたとおっしゃってますし、データがとれて
いないのは実際には何か別の問題でしょうけどね。
1

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