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在编辑行后以某种方式触发事件?

我想要这个,因为我有两列取决于一个可编辑的列,所以当我从该列编辑单元格时,必须相应地更改其他两列中的单元格(不仅是值,还有样式)。以及我无法访问该单元格样式的任何其他方式。

我正在等待有关更改单元格样式或强制 ASPxGriwView 从数据源刷新的任何帮助。

4

2 回答 2

2

男人,

如果您的网格绑定到数据源并且此数据源位于 Session Var 中,则只需更新此数据源。无需再次绑定数据源。

基本上:

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

好的,无论如何在页面上,只需使用 Session Var 中的数据源即可。您可以为此在 get/set 属性中封装 Session Var 创建最佳实践。

于 2012-07-25T16:11:14.637 回答
0

根据您的 aspx 标记,我看到 ASPxGridView 的 DataSource 是在运行时设置的。如果是这样,这个问题最简单的解决方案是用来自 DB 服务器的更新数据填充 DataTable,设置控件的 DataSource 属性,最后调用 ASPxGridView 的 DataBind 方法:

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