在Indicator中加多动态Checkbox,没有需求绑定数据源,帮助全选,indicatorcheckbox

先做设置

DBGrideh属性设置:

IndicatorOptions =

[gioShowRowIndicatorEh, //小三角提醒

gioShowRecNoEh,    //数据源行号

gioShowRowselCheckboxesEh]  //显示CheckBox

 

Options = [……, dgMultiSelect]  //开启多选,才干对Check博克斯进行编写制定

如上设置落成,功用就有了,对于选中的行举行遍历读取

  for I := 0 to DBGrideh.SelectedRows.Count - 1 do
  begin
    DBGrideh.DataSource.DataSet.Bookmark := DBGrideh.SelectedRows[I];    //定位
   ……    //读取定位后数据源其他操作
  end;

 

在上述基础上做叁个全选功用进级。 

暗中同意DBGrideh的设置中有如下设置

AllowedSelections =
[gstRecordBookmarks,gstRectangle,gstColumns,gstAll]

那会儿,鼠标点击DBGrideh左上角IndicatorTitle能够触发全选事件,可是却不可能对全选的数码记录进行利用,查找了下DBGrideh.pas,开掘了一段首要的代码

procedure TCustomDBGridEh.DefaultIndicatorTitleMouseDown(Cell: TGridCoord;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  DropdownMenu: TPopupMenu;
  P: TPoint;
  ARect: TRect;
begin  
    ......
end else if (dgMultiSelect in Options) and
    DataLink.Active and ([gstRecordBookmarks, gstAll] * AllowedSelections <> []) then
  begin
    if Selection.SelectionType <> gstNon then
      Selection.Clear
    else if gstAll in AllowedSelections then
      Selection.SelectAll
    else if gstRecordBookmarks in AllowedSelections then
      Selection.Rows.SelectAll;
  end;
end;

DBGrideh是经过Bookmarks定位数据源游标行的,在此,暗中认可设置AllowedSelections中[gstAll,gstRecordBookmarks],当触发IndicatorTitle鼠标点击事件时,发掘上一段代码运转是先检查gstAll,然后检查gstRecordBookmarks,所以纵然全选了,不过心有余而力不足牢固数据源游标,所以纵然在AllowedSelections中去掉[gstAll]即可

   

先做设置 DBGrideh属性设置: IndicatorOptions = [gioShowRowIndicatorEh,
//小三角…

先做设置

checkbox 和 radio的风云选用一度让自身很迷惑。

DBGrideh属性设置:

初始以自个儿对js的精晓,作者认为change事件应该是最合理的,缺憾啊ie下change事件是在改换后难题离开时才触发。
新生就用click
mousedown等鼠标事件代表。开掘click比mousedown要更完善一些:

IndicatorOptions =

radio注册了click事件过后,美妙的是用键盘上的左右左右挑选时,居然会触发鼠标事件,滚轮也会触发,这种奇妙的事情在mousedown上边是不会时有产生的。(webkit不能够动用前后左右抉择)
checkbox注册click事件后,神蹟再一次上演,当大家用空格选中checkbox时,奇妙的click事件再度接触,而mousedown再度与神蹟擦身而过。(webkit依旧不能够用空格选用)

[gioShowRowIndicatorEh, //小三角提示

让大家都用click吧,给这两位兄长减少压力呢,不要为了他们先天不足给他们绑定一批事件了,对于那五个家伙click才是万能的。敬拜一下~~~

gioShowRecNoEh,    //数据源行号

在用表单设计考查表时,为了降低客户的操作,使用接纳框是一个好主意,在HTML的<input>标识中有二种采纳框,即单选框和复选框,两个的分别是单选框中的选项客商只好选取一项,而复选框中的选项顾客能够无限制选择多项,乃至全选。请看下边包车型大巴事例:

gioShowRowselCheckboxesEh]  //显示CheckBox

上边给出那一个例子的源代码,结合代码来讲各参数的设置:
<form name=”form1″ >
你是或不是喜欢旅游?请选取:

Options = [……, dgMultiSelect]  //开启多选,能力对CheckBox进行编写制定

复制代码 代码如下:

上述设置完成,作用就有了,对于选中的行举行遍历读取

<input type=”radio” name=”radiobutton” value=”radiobutton”
checked> 喜欢
<input type=”radio” name=”radiobutton” value=”radiobutton”>
不喜欢
<input type=”radio” name=”radiobutton” value=”radiobutton”>
无所谓<br>

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注