2

私は ASPxGridView を持っています:

<dx:ASPxGridView ID="ASPxGridView_Main" runat="server" ClientIDMode="AutoID" ClientInstanceName="gridMain" EnableRowsCache="False" Width="100%"  OnCellEditorInitialize="ASPxGridView_Main_CellEditorInitialize"  OnRowUpdated="ASPxGridView_Main_RowUpdated" OnHtmlDataCellPrepared="ASPxGridView_Main_HtmlDataCellPrepared" OnRowUpdating="ASPxGridView_Main_RowUpdating">
    <SettingsBehavior AllowFocusedRow="True" ColumnResizeMode="Control" EnableRowHotTrack="True" AllowClientEventsOnLoad="False"></SettingsBehavior>
    <SettingsEditing Mode="Inline" PopupEditFormWidth="500px" PopupEditFormAllowResize="True" PopupEditFormHorizontalAlign="Center"></SettingsEditing>
    <Settings EnableFilterControlPopupMenuScrolling="True" ShowFilterBar="Auto" ShowHeaderFilterButton="True" UseFixedTableLayout="True" ShowGroupFooter="VisibleAlways" ShowFilterRowMenu="True" ShowHorizontalScrollBar="True"></Settings>
</dx:ASPxGridView>

そして、更新後にすべてのデータがデータソースから更新されることを望みます。どうすれば強制リロードできますか? またはOnHtmlDataCellPrepared、行を編集した後に何らかの方法でイベントを発生させることができますか?

編集可能な1つの列に応じて2つの列があるため、これが必要です。そのため、そのセルからセルを編集すると、それに応じて他の2つの列のセルを変更する必要があります(値だけでなくスタイルも)。他の方法では、そのセル スタイルにアクセスできません。

セル スタイルの変更または ASPxGriwView を強制的にデータ ソースから更新する方法についてのヘルプをお待ちしています。

4

2 に答える 2

2

おとこ、

グリッドがデータ ソースにバインドされていて、このデータ ソースがセッション変数にある場合は、このデータ ソースを更新するだけです。データ ソースを再度バインドする必要はありません。

基本的:

protected void Page_Load(object sender, EventArgs e) { 
    if (Session["__DataSource"] != null)
    {
        gvMyGridView.DataSource = Session["__DataSource"];
        gvMyGridView.DataBind();
    }        
}

わかりました。ページのどのイベントでも、Session Var にあるデータ ソースを操作するだけです。セッション変数を get/set プロパティにカプセル化するためのベスト プラクティスを作成できます。

于 2012-07-25T16:11:14.637 に答える
0

aspx マークアップに基づいて、ASPxGridView の DataSource が実行時に設定されていることがわかります。その場合、この問題の最も簡単な解決策は、DataTable に DB サーバーからの更新されたデータを入力し、コントロールの DataSource プロパティを設定して、最後に ASPxGridView の DataBind メソッドを呼び出すことです。

ASPxGridView1.DataSource = dataTable;
ASPxGridView1.DataBind();
于 2012-07-20T15:20:17.667 に答える