如何在编辑后从数据库刷新ASPxGridView

时间:2012-07-20 09:15:06

标签: asp.net devexpress aspxgridview

我有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从数据源刷新的任何帮助。

2 个答案:

答案 0 :(得分:1)

曼,

如果您的网格绑定到数据源并且此数据源位于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创建最佳实践。

答案 1 :(得分:0)

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

ASPxGridView1.DataSource = dataTable;
ASPxGridView1.DataBind();