子曰 发表于 2015-9-17 10:31:00

c1datagrid 排序联动问题

我将数据中数据读到datatable与datagrid绑定,代码如下:
                  SqlCommand cmd = new SqlCommand(CmdString, con);
                  SqlDataAdapter sda = new SqlDataAdapter(cmd);
                  DataTable dt = new DataTable(dataName);
                  sda.Fill(dt);
                  dataGridName.ItemsSource = dt.DefaultView;
然后出现了点击datagrid列头排序,就当前列会排序,别的列不联动,这是什么原因?

Alice 发表于 2015-9-17 11:38:00

回复 1楼子曰的帖子

感谢你的代码和反馈。
你的意思是说只能针对单列排序(排序后点击另一列,清除掉之前的排序信息,按照新点击的列排序),这是目前产品设计的排序方式。但是你希望的是多列排序?
为了帮助你解决问题,需要了解你的排序的需求是什么?

子曰 发表于 2015-9-17 14:24:00

回复 2楼Alice的帖子

我想要的只是最普通的排序功能,点击这一列排序,别的列随着第一列的变化。
现在是点击这一列排序,别的列不跟随第一列变化。

Alice 发表于 2015-9-17 15:38:00

回复 3楼子曰的帖子

很抱歉不能重现你的问题。
由于没有你的数据源,我模拟你的数据进行测试。
数据如下:
   DataTable dt = new DataTable();

            DataColumn d1 = new DataColumn("Temporary1", typeof(string));
            dt.Columns.Add(d1);
            DataColumn d2 = new DataColumn("Temporary2", typeof(string));
            dt.Columns.Add(d2);
            DataColumn d3 = new DataColumn("Temporary3", typeof(string));
            dt.Columns.Add(d3);

            dt.Rows.Add(new object[] { 1, 2, 3 });
            dt.Rows.Add(new object[] { 4, 4, 1 });
            dt.Rows.Add(new object[] { 2, 1, 5 });
            dt.Rows.Add(new object[] { 3, 0, 2 });

            grid.ItemsSource = dt.DefaultView;
运行时,显示如下:


点击第一列进行排序后,结果如下:




别的列跟随第一列发生了变化。

如果有什么不同,请指出,最好提供重现该问题的Demo。谢谢。

子曰 发表于 2015-9-17 16:48:00

回复 4楼Alice的帖子

附件中是demo,先要附加下数据库,然后需要改下Data Source
程序是从数据库得到数据,然后绑定,排序就出现问题了。

Alice 发表于 2015-9-17 17:08:00

回复 5楼子曰的帖子

你的Demo已经收到了,测试后给你回复。
谢谢。

Alice 发表于 2015-9-18 11:18:00

回复 6楼Alice的帖子

很抱歉,你的Demo中bin\Dedug文件夹下的demo.exe,无法运行。
我修改后依然报错。
你能在Demo中使用相对路径,比如string path=Environment.CurrentDirectory,获取一个相对路径。
在本地运行起来,重新将Demo发给我。或是将bin\Deug的exe可执行文件发给我。

子曰 发表于 2015-9-18 11:23:00

回复 7楼Alice的帖子

我这个demo需要你改下private const string ConString = "Data Source=TVXTWMJLCX4JPWH\\LABVAS;Database=db_Pre;Trusted_Connection=Yes;Connect
这里的Data Source = 当前你的数据库名字,
然后附加下文件夹下的db_Pre数据库

子曰 发表于 2015-9-18 11:40:00

回复 7楼Alice的帖子

我直接给你看看图吧,
点击第一列和第二列时都会出现问题,第四列就不会。

Alice 发表于 2015-9-18 12:12:00

回复 8楼子曰的帖子

很抱歉你的mdf数据库我打不开。
C1DataGrid的排序和数据源类型基本没有关系,它并不关心是sql还是access数据库。推测原因在数据类型或是数据本身。
请你将mdf的数据库转成access数据库发给我。
最好有两张排序前后的对比图,看看数据的情况。
谢谢。
页: [1] 2
查看完整版本: c1datagrid 排序联动问题