当前位置:编程学习 > C#/ASP.NET >>

DevExpress中GridControl的重新绑定数据后如何刷新?

DevExpress中GridControl的重新绑定数据后如何刷新?
第一次把gridControl1.DataSource = ds1.Tables["墒情信息表"];
然后显示一切正常

第二次gridControl1.DataSource = ds2.Tables["雨量信息表"];
这一次GridControl显示的列名还是之前墒情表的名称,请问如何刷新?????急啊!!! --------------------编程问答-------------------- 你有没有一个事件来触发
你指的第二次绑定是在什么情况下出现的

一个按钮,还是一个方法,

如果是web程序
应该这样做
ViewState["datasource"]=ds1
如果第二次改你就这样
ViewState["datasource"]=ds2

然后在page_load
方法中
if(ViewState["datasource"]!=null)
{
grid.datasource=ViewState["datasource"] as DataSet;
}

就是用这样的方式,你改改

我们不管有几个数据源,只要有回传,或是执行事件都会经过page_load这样只要你更改了数据源,grid就会跟着变 --------------------编程问答-------------------- gridControl1.DataSource =null
 加个这句看一下
--------------------编程问答-------------------- gridControl1.DataSource = ds2.Tables["雨量信息表"];
gridControl1.DataBind(); --------------------编程问答--------------------
引用 3 楼 happytonice 的回复:
gridControl1.DataSource = ds2.Tables["雨量信息表"];
gridControl1.DataBind();
没看到这个方法啊!! --------------------编程问答--------------------
引用 2 楼 cheeks 的回复:
gridControl1.DataSource =null
 加个这句看一下
试了下不管用,什么gridControl1.Update();
gridControl1.Refresh();
都试过了,grid里面还是显示第一次查询时的列名,重新付给新的DataSource后什么都不显示啊~而且新的 ds2.Tables["雨量信息表"];里面绝对有数据,其他的一些显示控件都可以显示~就是grid纠结啊~!
--------------------编程问答-------------------- 还有一点要说明下,我用的不是VS的控件,不是DataGiridView,而是DexExpress里面的gridControl,和VS的有区别,单功能相同!有木有这个控件的高手帮看看怎么更新里面的数据显示~! --------------------编程问答-------------------- 不太可能吧
gridControl1.DataSource = ds1.Tables["墒情信息表"];
gridView1.Columns.Clear(); //gridControl1.DataSource = null; 没用?
gridControl1.DataSource = ds2.Tables["雨量信息表"];
--------------------编程问答-------------------- 跟踪测试一下看看 --------------------编程问答-------------------- 你把你的代码放出来

包括load方法,看下,是不是哪里没写对 --------------------编程问答--------------------
引用 7 楼 dongxinxi 的回复:
不太可能吧
gridControl1.DataSource = ds1.Tables["墒情信息表"];
gridView1.Columns.Clear(); //gridControl1.DataSource = null; 没用?
gridControl1.DataSource = ds2.Tables["雨量信息表"];
clear也试过了的!没用列名依然是墒情信息表的~ --------------------编程问答--------------------
引用 8 楼 sgzhou12345 的回复:
跟踪测试一下看看
跟踪测试了,代码没错啊,DataSource的第二次赋值(gridControl1.DataSource = ds2.Tables["雨量信息表"];
)也执行了,但是显示出来的时候列名依然是墒情信息表的,并且下面没数据,但是回过去继续查询“墒情信息表”的话就一切正常,难道DataSource在一次赋值后被锁定了吗????用VS自己的控件重来没出现这个问题啊~ --------------------编程问答--------------------
引用 9 楼 ajaxtop 的回复:
你把你的代码放出来

包括load方法,看下,是不是哪里没写对
代码很多啊,话说和load有什么关系,我又木有重新打开窗体~ --------------------编程问答-------------------- 我也没找到刷新方法。
但我用了一个变通的方法:this.gridView1.BestFitColumns();很好用的。 --------------------编程问答-------------------- Grid1.RefreshDataSource --------------------编程问答-------------------- 在第二次给DataSource赋值后,列名依然是第一次的“墒情信息表”的列名,但我发现“雨量信息表”中和“墒情信息表”列名相同的数据可以显示,不相同的数据显示不了,是不是
DevExpress中GridControl控件会锁定它第一次显示的列名啊???有什么办法可以改变吗???求DevExpress控件高手啊!!!! --------------------编程问答--------------------
引用 14 楼 51crack 的回复:
Grid1.RefreshDataSource
用过,列名依然不变~ --------------------编程问答--------------------
引用 13 楼 sudianbo 的回复:
我也没找到刷新方法。
但我用了一个变通的方法:this.gridView1.BestFitColumns();很好用的。
没找到这个方法啊~我用的是DevExpress中GridControl控件,不是VS的datagridview~ --------------------编程问答-------------------- 楼主没有办法,你就用两个panel吧,然后用两个控件,通过显示控制来实现两个数据源的显示
实在没有遇到这样的问题
--------------------编程问答--------------------
引用 18 楼 ajaxtop 的回复:
楼主没有办法,你就用两个panel吧,然后用两个控件,通过显示控制来实现两个数据源的显示
实在没有遇到这样的问题
....是不是要设置一下gridcontrol的属性啊,直接吧表赋值给gridControl1.DataSource就绑定了,就像生成了一个表,而一般在查询的时候都是生成的试图~表会绑定,但是试图不会~ --------------------编程问答-------------------- 同志们,谢谢大家这么多回答~我终于弄出来了,在重新给gridcontrol.datasource赋值前,把里面的gridview使用gridView1.Columns.Clear();这个放吧,将试图的列名清空~~~就OK了~ --------------------编程问答-------------------- 楼主,今天看到贴差点就想说这事,觉得你很可能把列名定死了

哎,清空吧,这个必须的,要不看到的肯定是以前的嘛 --------------------编程问答--------------------
引用 21 楼 ajaxtop 的回复:
楼主,今天看到贴差点就想说这事,觉得你很可能把列名定死了

哎,清空吧,这个必须的,要不看到的肯定是以前的嘛
呵呵,想一块去了! --------------------编程问答--------------------         DataTable dt = null;
        DataTable dt1 = null;

        private void Form1_Load(object sender, EventArgs e)
        {
            DevExpress.XtraGrid.Columns.GridColumn colname = new DevExpress.XtraGrid.Columns.GridColumn();
            colname.Name = "colname";
            colname.FieldName = "colname";
            colname.VisibleIndex = 0;

            DevExpress.XtraGrid.Columns.GridColumn colpic = new DevExpress.XtraGrid.Columns.GridColumn();
            colpic.Name = "colpic";
            colpic.FieldName = "colpic";
            colpic.VisibleIndex = 1;

            DevExpress.XtraGrid.Columns.GridColumn colimg = new DevExpress.XtraGrid.Columns.GridColumn();
            colimg.Name = "colimage";
            colimg.FieldName = "colimage";
            colimg.VisibleIndex = 2;
            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colname, colpic, colimg });

            //gridView1.OptionsView.RowAutoHeight = true;

            DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit picedit = new DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit();
            picedit.AutoHeight = true;
            picedit.Name = "respositoryitempic1";
            colpic.ColumnEdit = picedit;
            DevExpress.XtraEditors.Repository.RepositoryItemImageEdit imageedit = new DevExpress.XtraEditors.Repository.RepositoryItemImageEdit();
            imageedit.AutoHeight = true;
            imageedit.Name = "respositoryitem1";
            colimg.ColumnEdit = imageedit;

            Image img = new Bitmap(@"G:\图片\无标题.jpg");

            dt = new DataTable();
            dt.Columns.Add("colname", typeof(string)).Caption="姓名";
            dt.Columns.Add("colpic", typeof(Image)).Caption="图像";
            dt.Columns.Add("colimage", typeof(Image)).Caption = "图像";

            dt.Rows.Add("asda", img, img);

            gridControl1.DataSource = dt;

            dt1 = new DataTable();
            dt1.Columns.Add("colname", typeof(string)).Caption = "aaa";
            dt1.Columns.Add("colpic", typeof(string)).Caption = "bbb";

            dt1.Rows.Add("bsc", "adsasd");
        }

        private void 易做图Button1_Click(object sender, EventArgs e)
        {
            gridView1.Columns.Clear();
            gridControl1.DataSource = dt1;
        }


用            gridView1.Columns.Clear();就行啊 --------------------编程问答-------------------- 解决就好!

多次动态给 dev的grid绑定数据需要它
gridView1.Columns.Clear(); --------------------编程问答-------------------- 请问ASPxPivotGrid 后台用sql server 2005 ,自己在后台用sql 语句生成dataset ,然后赋值给ASPxPivotGrid的datasource,查询后显示没有问题,有数据,但是如果用鼠标点击ASPxPivotGrid的某个字段的过滤的箭头后,数据就没有了,请问该怎么解决呢,谢谢!  请看帖子http://topic.csdn.net/u/20120104/17/3839cc99-b688-4d2c-9290-3fe9e324b73c.html?11030 --------------------编程问答-------------------- 请问DevExpress的ASPxPivotGrid 后台用sql server 2005 ,自己在后台用sql 语句生成dataset ,然后赋值给ASPxPivotGrid的datasource,查询后显示没有问题,有数据,但是如果用鼠标点击ASPxPivotGrid的某个字段的过滤的箭头后,数据就没有了,请问该怎么解决呢,谢谢!  请看帖子http://topic.csdn.net/u/20120104/17/3839cc99-b688-4d2c-9290-3fe9e324b73c.html?11030 --------------------编程问答-------------------- 不好意思发重了。请问DevExpress的ASPxPivotGrid 后台用sql server 2005 ,自己在后台用sql 语句生成dataset ,然后赋值给ASPxPivotGrid的datasource,查询后显示没有问题,有数据,但是如果用鼠标点击ASPxPivotGrid的某个字段的过滤的箭头后,数据就没有了,请问该怎么解决呢,谢谢!请看帖子请看帖子[url=http://topic.csdn.net/u/20120104/17/3839cc99-b688-4d2c-9290-3fe9e324b73c.html?11030 --------------------编程问答--------------------
引用 24 楼  的回复:
解决就好!

多次动态给 dev的grid绑定数据需要它
gridView1.Columns.Clear();

确定好用!! --------------------编程问答-------------------- gridControl1.DataSource = ds2.Tables["雨量信息表"];
gridview.columns[0].filename="";
gridview.columns[0].caption="asdf" --------------------编程问答-------------------- this.gridView1.BestFitColumns();确实很不错 --------------------编程问答-------------------- 我碰過,綁定後,數據源上的列與GRIDCONTROL上的列不同,用
gridView1.Columns.Clear();
就可以了 --------------------编程问答-------------------- this.superGridControl4.Refresh();
补充:.NET技术 ,  图表区
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,