首页 > 解决方案 > 根据数据源动态更改 Devexpress 网格布局

问题描述

尝试在 VB.Net 中构建一个管理工具,该工具将根据来自任何表的动态 sql 选择显示显示数据。第一次工作正常,第二次 DevExpress XtraGrid 上显示的列与新的 SQL 语句和结果集匹配,数据表有数据,网格属性应该数据源与数据正确但数据不显示显示期间的网格。

    Try
        'Initialize Datatable and Grid
        dt.Reset()
        GridView1.Columns.Clear()
        grdAdminSQL.DataSource = Nothing

        'Get the data and load into data table
        myCmd = myConn.CreateCommand
        myCmd.CommandText = tbAdmSQL.Text.Trim
        myConn.Open()
        myreader = myCmd.ExecuteReader()
        dt.Load(myreader)

        'Reset the Data Source on the grid
        grdAdminSQL.DataSource = dt
        grdAdminSQL.RefreshDataSource()
    Catch ex As Exception
    Finally
        myConn.Close()
        myConn.Dispose()
    End Try

标签: vb.netdevexpressxtragrid

解决方案


我认为这是因为GridView1.Columns.Clear()不足以让 DevExpress 知道它需要重新创建列。

您还需要致电

grdAdminSQL.MainView.PopulateColumns()

设置好数据源后。

如果这不起作用,请添加

grdAdminSQL.ForceInitialize()

推荐阅读