- - PR -
GridVew、EditのTextBoxのTextChange
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-02-27 17:33
お世話になります。
VS2008 VBでのWebアプリケーションを開発しています。 現在、Gridviewコントロールで 編集中に表示しているTextBoxのTextChangeイベントが取得できません。 GridViewのRowCreatedイベントで @
A
@,Aともに、イベントは来ないようでした。 他にもEditRowのTextBoxをWithEventで定義したものに置き換えてみるなど 試したのですがやはりだめでした。 もっと普通にできるものなのでしょうか。 よろしくお願いします。 [ メッセージ編集済み 編集者: Clocky 編集日時 2009-02-27 18:00 ] | ||||||||
|
投稿日時: 2009-02-27 17:46
aspx側のTextBoxのOnTextChangedに定義してみてはどうでしょう?
| ||||||||
|
投稿日時: 2009-02-27 17:52
> 編集中に表示しているTextBoxのTextChangeイベントが取得できません。
編集中、ということですけど、1文字入力するたびにポストバックさせる形でイベントを取りたいのでしょうか?それとも、更新のタイミングでイベントを取りたいのでしょうか? そのあたりでやるべきことは変わってくると思います。 あと、こういった処理が必要となる列をテンプレート化することで、編集中だとEditTemplateの中におかれるTextBoxにたいしてIDEからプロパティやイベントを設定することができるようになります。 完全に動的にコントロールしようとするよりは、そっちのほうがよっぽど楽できるんじゃないかと思います。 | ||||||||
|
投稿日時: 2009-02-27 18:00
回答ありがとうございます。 aspx側ではGridViewの定義の中に EditBoxを配置できそうな場所は特になかったためどこにOnTextChangedを 定義できるのかが分からなかったためコードで対応しておりました。 GridViewには編集に関する項目はEditStyleだけかと思っているのですが EditTemplate的なものがあるのでしょうか。 ちなみに編集はColumnsにCommandFieldを入れて行うようにしています。 | ||||||||
|
投稿日時: 2009-02-27 18:04
やろうとしていることは。
複数のCellがあり、一番左のTextBoxに何か文字が入力されるまでは その他のCellがEnable=Falseになるようにする。です ですので、1文字ずつ確認する必要はないですが データの更新時(RowUpdating)ではなく TextBoxからフォーカスが抜けた時点でイベントが欲しいです。
FormViewなどでなくGridViewでEditTemplateを使うというのが いまいちわかってないようなので調べてみます。 [ メッセージ編集済み 編集者: Clocky 編集日時 2009-02-27 18:06 ] | ||||||||
|
投稿日時: 2009-02-27 18:11
書き間違いですか? Edit_txtbox_TextChangedではなくて、 イベントがこないというのは、RowCreatedイベントが走らないということですか? handlesがないのでは? あとCTypeの引数?? | ||||||||
|
投稿日時: 2009-02-27 18:23
すみません、CTypeのほうは元のコードから不要なコードを
削除する際の移植ミスです。
でバクで確認しているのでRowCreatedイベントは走っています。 handlesがないのも移植みすです。 実際はDataListの中のGridViewなのでaspx側でイベント関数を登録しています。 RowCreatedが正常に呼ばれ、AddHandler も通っているのですが そのTextBoxに文字を入力してもEdit_txtbox_TextChangedが呼ばれないという感じです。 ちなみにaspx側で<EditItemTemplate></EditItemTemplate>を書くと デザイン表示をしたときにプロパティがありませんと表示されました。。。 EditTemplateとはaspx側で書くものではないんでしょうか…。 | ||||||||
|
投稿日時: 2009-02-27 18:31
内容に関係はありません(と思う)が。
http://dotnetfan.org/blogs/dotnetfanblog/articles/692.aspx この最初のほうでフィールドをテンプレートに変換しています。 スクリーンショットがないとわかりにくいところですね。 |