送分了,贴了一天没人答

bearhb 2005-08-04 05:32:24
在DataGrid中如何禁止各列排序,我已经将AllowSorting=false,但是点击每列的标头后还是会排序,我是用DataGridTextBoxColumn显示的字段
...全文
178 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ever_present 2005-08-06
  • 打赏
  • 举报
回复
受教啦 :)
lovevsnet 2005-08-05
  • 打赏
  • 举报
回复
而且你还可以指定哪些列不排序
HitTestInfo ht = this.HitTest(p);
if( ht.Type ==HitTestType.RowHeader&&!AllowColSorting&&ht.Column==1)return;
对第二列不排序
lovevsnet 2005-08-05
  • 打赏
  • 举报
回复
把.net自带的DataGrid从工具箱中删了算,自己重写一下,增加点功能
我是那么做的,比如增加属性AllowColSorting,AllowColSelected,EnterAsTab等等
public class DataGridEx: DataGrid
{
...............
private bool _AllowColSorting=true;
public bool AllowColSorting
{
get{return _AllowColSorting;}
set{_AllowColSorting=value;}
}
............
protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
{
Point p = new Point(e.X, e.Y);
HitTestInfo ht = this.HitTest(p);
if( ht.Type ==HitTestType.RowHeader&&!AllowColSorting)return;
base.OnMouseDown(e);
}
........
bearhb 2005-08-05
  • 打赏
  • 举报
回复
看了lovevsnet(编程一把手)的回复,总算有点hope了。有没有更简单的方法呢
lovevsnet 2005-08-05
  • 打赏
  • 举报
回复
重写DataGrid
public class DataGridEx: DataGrid
{
...............
protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
{
Point p = new Point(e.X, e.Y);
HitTestInfo ht = this.HitTest(p);
if( ht.Type ==HitTestType.RowHeader )return;
base.OnMouseDown(e);
}
........
accpzj 2005-08-04
  • 打赏
  • 举报
回复
你要将DataGridTableStyle的AllowSorting属性设为false
DataGridTableStyle tablestyle=new DataGridTableStyle();
tablestyle.AllowSorting=false;
DATAGRID1.TableStyles.Add(tablestyle);
bearhb 2005-08-04
  • 打赏
  • 举报
回复
各位,你们要看清问题,为什么你们不自己试下,试试有无这种情况。我在作一个单据的输入界面,使用DataGrid记录,但如果用户不小心点击了排序,每次输入的数据都会自动排序,非常不方便。我试过,不用DataGridTextBoxColumn显示中文台头,置DataGrid的属性AllowSorting=false,是可以达到效果的。各位试试,除了绑定,我没有其它的代码。
sten 2005-08-04
  • 打赏
  • 举报
回复
up,送分不是吗?我接!
j_lei407 2005-08-04
  • 打赏
  • 举报
回复
就像我今天一样!有个错误怎么也查不出什么原因!最后才发现原来是因为数据库连接没有改过来!所以结果不是自己想要的结果!相信你明天一觉起来什么都好啦
humin1906 2005-08-04
  • 打赏
  • 举报
回复
碰到这种事情最好不要钻牛角尖 ,明天睡一觉醒来就好了 ^_^
xli520 2005-08-04
  • 打赏
  • 举报
回复
你的DataGrid是自定义的控件还是直接从工具箱里拿来用的?
如何是直接从工具箱里拿来用的建议你删了它,再加载一个。
MyLf 2005-08-04
  • 打赏
  • 举报
回复
你要用DataSouce的DataView的充许排序属性。
lovefootball 2005-08-04
  • 打赏
  • 举报
回复
好好看看代码吧
这种情况应该不会有的
呵呵
我没遇到过
看看有没有事件绑定
goldcursor 2005-08-04
  • 打赏
  • 举报
回复
呵呵!没遇到过!
fancyhsq 2005-08-04
  • 打赏
  • 举报
回复
学习。。哈哈。没具体看过。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧