1

私はインフラジスティックスとwinGridsに不慣れです

次の表のSQLデータベースがあります

Costumers
[ID][Name]

さらに、winGridボタンとadd\removeボタンを持つUserControlがあります。

UserControllがになると、アクティブなwinGridデータソースがテーブルにバインドされます

winGrd.DataSource = Tables.Costumers;

ユーザーがコスチュームテーブルからデータを追加/削除したい場合は、関連するボタンをクリックします。テーブルはそれに応じて変更されますが、グリッドに表示されるデータは変更されません。使用しました

winGrd.Refresh();

しかし、それは効果がありません

これを行う方法は何ですか、コード例は大歓迎です

ありがとう

---編集済み----コードの追加:

private void BtnAdd_Click(object sender, System.EventArgs e)
{
        //...

        DB.DataProxy.AddCostumer(txtType.Text);
        winGrd.Refresh();

        //...
}

AddCostumerメソッドは、最終的に、顧客テーブルを更新する次のメソッドを呼び出します。

public void AddCostumer(string type)
{
        Costumers.InsertOnSubmit(new InsertOnSubmit{ Name = name});
}
4

4 に答える 4

3

DataTableが更新されている場合、はUltraGridそれらの変更を表示するはずです。あなたが試すことができるのは、電話することです

ultraGrid1.Rows.Refresh(Infragistics.Win.UltraWinGrid.RefreshRow.ReloadData);

また

ultraGrid1.Rows.Refresh(Infragistics.Win.UltraWinGrid.RefreshRow.RefreshDisplay);
于 2012-05-13T19:03:40.850 に答える
2

確かではありませんが、InsertOnSubmit() に関する MSDN ドキュメントのように

The added entity will not appear in query results from this table until after SubmitChanges has been called.

そのため、結果をすぐに Costomers エンティティに表示してから WinGrid に表示する場合は、SubmitChanges() の上のコードで呼び出す必要があります。

public void AddCostumer(string name) 
{ 
    Costumers.InsertOnSubmit(new Costumers() { Name = name}); 

    // Submit the change to the database.
    try
    {
        db.SubmitChanges();
    }
    catch (Exception e)
    {
       // message to the user???
    }
} 
于 2012-05-12T11:40:32.370 に答える
0

追加/削除コマンドを実行したら、データベースからデータを再度プルし、バインドをやり直します。念のため、すべての前に DataGridView.DataSource を null に設定します。接続またはその他のデータベース関連のプロセスが失敗した場合に、間違ったデータを表示したくないでしょう。

于 2012-05-12T12:38:06.430 に答える
0

UltraGrid が変更されたデータを自動的に更新するために使用する IBindableList を実装しない DataSource を設定しているためだと思います。新しい情報を表示する必要がある場合は、手動で DataSource を null に設定し、DataSource を再度リセットして更新してみてください。

于 2013-12-05T12:54:24.553 に答える