- PR -

[C#][SPREAD for .NET]再度バインドする方法について

1
投稿者投稿内容
EarlyHero
常連さん
会議室デビュー日: 2007/03/16
投稿数: 37
お住まい・勤務地: 福岡県
投稿日時: 2007-08-01 16:44
EarlyHeroです。

件名からお察しの通りC#でSPREADを使用しています。

SPREADにはデータテーブルをバインドして表示しています。

バインドしているデータテーブルに1行挿入すると自動的にSPREAD上にも
1行挿入されるのですが、データテーブルに行を挿入した位置に関わらず
SPREADでは必ず最後の行に挿入されてしまいます。
データテーブルに行を挿入した位置にSPREA上でも挿入したいのですが、
方法がわかりません。

再度バインドすればよいのかと思い、同じデータテーブルを再セットした
のですがデータテーブル内の行の順番通りに表示されません。
多分画面が以前の状態のまま変更されていないのだと思います。
なお、SPREADのResetメソッドを使うと初期設定が崩れてしまうので
Resetメソッドは使用したくありません。
実際に再度バインドできるんじゃないかと思ってやってみたのが以下の通りです。

// 再度バインド
this.spread.DataSource = null;
this.spread.DataSource = this.dtbForSpread;

これじゃダメなんでしょうか?
ちなみにこのあとRefreshメソッドを使っても画面は更新されませんでした。

何かよい方法がございましたら教えてください。
EarlyHero
常連さん
会議室デビュー日: 2007/03/16
投稿数: 37
お住まい・勤務地: 福岡県
投稿日時: 2007-08-07 13:44
EarlyHeroです。

あまり役に立たないかもしれませんが解決したので報告しておきます。
再バインドですが、以下の方法で実現できました。

@バインドしているデータテーブルを退避させる。
AバインドしているデータテーブルをNULLに初期化する。
B退避させておいたデータテーブルをバインドしているテーブルにセットする。

Aで必ずNULLにしなければいけないというわけではなく、
別のテーブルに置き換えても可能でした。理由までは分かりません。
なお、「this.spread.DataSource = null;」にする必要ないようです。

これで自動的にSPREADがバインドしているデータテーブルの並び通りに
表示されるようになりました。

[ メッセージ編集済み 編集者: EarlyHero 編集日時 2007-08-07 14:01 ]
1

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