- - PR -
【ASP.NET2.0】DataSourceコントロールとRepeaterControl
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-20 22:47
ASP.NET2.0で、SqlDataSourceコントロールを使い、RepeaterControlに値をバインドしています。
RepeaterControlなどを使っているのは、Webデザイナが作ったHTMLテーブルをテンプレートに使わざるを得ないからで、DataGridViewコントロールが使用できません(T^T) 表示は問題なくできていますが、DataSourceコントロールののデータ更新でつまづいています。 <ItemTemplate> <ASP:TextBox id=TxHoge runat=Server text='<% Bind("hoge") %>' /> </ItemTemolate> などとして、DataSourceControlのDataSourceViewを更新できるのかと思いきや、更新したいRepeater行のRepeaterItemのDataItemに値が入ってきません。 RepeaterにDataSourceControlはバインドできないのでしょうか?? それとも、DataItemに値を入れるヒミツの方法が?? | ||||||||
|
投稿日時: 2006-07-20 23:18
Repeaterは1.1からあるクラスですから、データバインディングの仕組み自体を
持っていないと思います。 更新までは無理でしょうね。 | ||||||||
|
投稿日時: 2006-07-21 03:44
しかし、RepeaterControlにできてGridViewにできない局面が想像できません。 TemplateFieldにぺたぺたはっていけば、たいがいのことはできませんか? | ||||||||
|
投稿日時: 2006-07-21 11:02
> どっとねっとふぁん さん
いつもありがとうございます。
いろいろ調べましたが、どうもそんな感じです。 ふつう、RepeaterにDataTableなどをバインドすると。RepeaterItemのDataItemにはDataRowViewが入っているのですが、DataSourceContolをバインドした場合はキレイにnullになっています。 ただ、表示だけはぜんぜん問題なくできるのです。 DataSourceControlに関しては、これまでの常識がくつがえされ、悲しいです。 _________________ | ||||||||
|
投稿日時: 2006-07-21 11:53
> べる さん
ご返答、ありがとうございます。
TemplateField使って表示するところまではうまくいったのですが、テーブル全体にボーダー・コラップスのCSSが使われていたり、CSSがらみの画像ボタンが連結フィールドにあったりして、メゲてしまいました。 考えてみれば、そうですよね〜。最悪、フィールド1個を全部TemplateFieldにしてしまえば、Repeaterと同じなのですが。。 ただ、カスタムボタン動作とGridViewの行要素操作を調べないといけません。 こちらの方法でもう少しやってみます。 良いサジェスチョン、感謝いたします。 ASP.NET2.0では、Repeaterなんかもう使わないほうが良いんでしょうか? _________________ | ||||||||
|
投稿日時: 2006-07-21 18:26
GridView1.Style["border-collapse"] = "separate"; こうやってみたら style="border-collapse:collapse;border-collapse:separate;" こうなった。。。(separateにはなるけど。。) Repeaterの中にFormViewをおいてみるとか。 (やったわけじゃないです。いろいろ難しいかもしれません) |
1