关于排序后编辑错误的问题 |
缺席
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
我在DBGridTitleclick;事件里面写了这个函数
//按照内容排序 procedure TForm1.DsSort(SortColumn: TColumn); var OldIndex:string; begin if (SortColumn.Grid.DataSource=nil) or (SortColumn.Grid.DataSource.DataSet=nil) or (not SortColumn.Grid.DataSource.DataSet.Active) then Exit; OldIndex:=TClientDataSet(SortColumn.Field.DataSet).IndexName; if OldIndex<>'' then begin TClientDataSet(SortColumn.Field.DataSet).IndexName:=''; TClientDataSet(SortColumn.Field.DataSet).DeleteIndex(OldIndex); end; case ASC of True :TClientDataSet(SortColumn.Field.DataSet).AddIndex('px',SortColumn.Field.FieldName,[ixDescending]);//已经是升序就按降序排列 else//否则按升序排列 TClientDataSet(SortColumn.Field.DataSet).AddIndex('px',SortColumn.Field.FieldName,[ixPrimary]); end;{end case} TClientDataSet(SortColumn.Field.DataSet).IndexName:='px'; ASC:=not ASC; 运行没有问题。 但是之后的问题来了。 我如果此时要编辑clientdataset这个数据库的话,他显示了 Clientdataset1:index 'px' not found; 编辑数据我用了这个 ClientDataSet1.Edit; if not ClientDataSet1.Eof then begin if ClientDataSet1.FieldByName('编辑').AsString='' then begin ClientDataSet1.FieldByName('编辑').AsString:='★'; end; 急啊,在线等。
------
断断续续的学了几年,还是一个初学者,永远支持Delphi ! |
max5020
資深會員 發表:29 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |