- - PR -
FormView上のユーザーコントロールに、データバインドしたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-10 19:56
VS2005 VB/ASP.NET でwebアプリケーションの開発を行っています。
[質問] ユーザーコントロール上のコントロールにデータバインドすることは可能でしょうか。 [試したこと] Webユーザーコントロールを作成 wuc.ascx +--Label1 +--TextBox1(今回データバインド対象にしたい) テスト用のページを作成 Default.aspx +--FormView1 +--wuc1 +--SqlDatasource1 バインド可能プロパティを作ろうと考え、 ユーザコントロールにTextプロパティを作成しました。 Textプロパティは、Get/Set時にTextBox1.Textを書き換えるようにしました。
VS2005のデザイナからは、DataBindingsを指定できなかったので 直接HTMLソースを開き、ユーザコントロールの箇所に Text='<%# Bind("CategoryName") %>' と記述しました。 [実験結果] Northwind のCategoriesテーブルを対象に実験したところ、 Select はできたのですが、Update時に例外が発生しました。。 [エラーメッセージ] 値 NULL を列 'CategoryName'、テーブル 'Northwind.dbo.Categories' に挿入しようとしましたが、この列は NULL を挿入できません。 UPDATE は失敗します。 ステートメントは終了されました。 以上です。 | ||||
|
投稿日時: 2006-07-13 00:06
自己解決。
上記はユーザーコントロールはポストバック毎に初期化される、 という仕組みを知らなかったための疑問でした。 .ascxのデータバインドさせたいプロパティを ビューステートに保存するというやりかたで解決できました。 (参考にしたURL) http://msdn2.microsoft.com/ja-JP/library/26db8ysc.aspx |
1