找回密码
 立即注册

QQ登录

只需一步,快速开始

子曰

中级会员

16

主题

45

帖子

670

积分

中级会员

积分
670

活字格认证

子曰
中级会员   /  发表于:2015-9-17 10:31  /   查看:11538  /  回复:16
我将数据中数据读到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列头排序,就当前列会排序,别的列不联动,这是什么原因?

16 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-9-17 11:38:00
沙发
回复 1楼子曰的帖子

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
子曰
中级会员   /  发表于:2015-9-17 14:24:00
板凳
回复 2楼Alice的帖子

我想要的只是最普通的排序功能,点击这一列排序,别的列随着第一列的变化。
现在是点击这一列排序,别的列不跟随第一列变化。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-9-17 15:38:00
地板
回复 3楼子曰的帖子

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

  2.             DataColumn d1 = new DataColumn("Temporary1", typeof(string));
  3.             dt.Columns.Add(d1);
  4.             DataColumn d2 = new DataColumn("Temporary2", typeof(string));
  5.             dt.Columns.Add(d2);
  6.             DataColumn d3 = new DataColumn("Temporary3", typeof(string));
  7.             dt.Columns.Add(d3);

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

  12.             grid.ItemsSource = dt.DefaultView;
复制代码

运行时,显示如下:


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




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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
子曰
中级会员   /  发表于:2015-9-17 16:48:00
5#
回复 4楼Alice的帖子

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-9-17 17:08:00
6#
回复 5楼子曰的帖子

你的Demo已经收到了,测试后给你回复。
谢谢。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-9-18 11:18:00
7#
回复 6楼Alice的帖子

很抱歉,你的Demo中bin\Dedug文件夹下的demo.exe,无法运行。
我修改后依然报错。
你能在Demo中使用相对路径,比如string path=Environment.CurrentDirectory,获取一个相对路径。
在本地运行起来,重新将Demo发给我。或是将bin\Deug的exe可执行文件发给我。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
子曰
中级会员   /  发表于:2015-9-18 11:23:00
8#
回复 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
9#
回复 7楼Alice的帖子

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-9-18 12:12:00
10#
回复 8楼子曰的帖子

很抱歉你的mdf数据库我打不开。
C1DataGrid的排序和数据源类型基本没有关系,它并不关心是sql还是access数据库。推测原因在数据类型或是数据本身。
请你将mdf的数据库转成access数据库发给我。
最好有两张排序前后的对比图,看看数据的情况。
谢谢。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部