问题描述
我已实现了CheckBox单选、全选,我是希望在这个基础上再进一步。我看到有朋友实现了这个功能,就是鼠标在右上角点击一下,鼠标再移到左下角点击一下,在这两点之间构成的矩形中的数据就全部被选了。这个功能怎么实现呀,谢谢大家。
解决方案
解决方案二:
取得两次点击的index,构成一个矩形,取值就可以了吧
解决方案三:
dataGridView本身是可以用rowIndex,colIndex来定位的,这个大致思路就是楼上说的了,取得两次点击的index,中间间隔的用个循环补齐了,循环的同时变个底色或者选择,效果就出来了,有个问题,这个动作触发前,是不是需要用户做个额外的操作啊,比如说必须按住ALT键不放,如果没有,这样子的点来点去每次都帮用户选中未必是好的使用体验。
解决方案四:
其实这个快捷操作听起来挺蛋疼的我还是宁愿提供个"全选","反选"按钮而不是我随便点了两下,刚才选中的东西就自己变了
解决方案五:
可以扑捉用户点击的位置在哪一行,然后从第一次点击到第二次点击组合成一个矩形。
解决方案六:
这个特效要用Js实现,可以记下两次点击坐标,再根据情况去算
解决方案七:
那位兄弟有具体的代码让我看看
解决方案八:
应该是按住鼠标左键拖放
解决方案九:
那位兄弟有合适的代码吗?
解决方案十:
解决方案十一:
GridView如何实现复选框单选和全选//GridView设置<asp:GridViewID="ClassList"runat="server"AutoGenerateColumns="False"CellPadding="4"Font-Size="11pt"GridLines="None"Width="468px"OnRowCancelingEdit="ClassList_RowCancetingEdit"OnRowDeleting="ClassList_RowDeleting"OnRowEditing="ClassList_RowEditing"OnRowUpdating="ClassList_RowUpdating"ForeColor="#333333"AllowPaging="True"AllowSorting="True"OnPageIndexChanging="ClassList_PageIndexChangging"PageSize="6"OnRowDataBound="ClassList_RowDataBound"><FooterStyleBackColor="#1C5E55"Font-Bold="True"ForeColor="White"/><Columns><asp:TemplateFieldHeaderText="选项"><ItemTemplate><asp:CheckBoxID="CheckBox1"runat="server"Font-Size="9pt"Height="1px"Width="1px"/></ItemTemplate></asp:TemplateField><asp:BoundFieldDataField="ST_c_id"HeaderText="类型编号"ReadOnly="True"/><asp:BoundFieldDataField="ST_c_name"HeaderText="文章类别"/><asp:CommandFieldHeaderText="编辑"ShowEditButton="True"/><asp:CommandFieldHeaderText="删除"ShowDeleteButton="True"/></Columns><SelectedRowStyleBackColor="#C5BBAF"ForeColor="#333333"Font-Bold="True"/><PagerStyleBackColor="#666666"ForeColor="White"HorizontalAlign="Center"/><HeaderStyleBackColor="#1C5E55"Font-Bold="True"ForeColor="White"/><AlternatingRowStyleBackColor="White"/><RowStyleBackColor="#E3EAEB"/><EditRowStyleBackColor="#7C6F57"/></asp:GridView>//单选、全选设置<tablestyle="width:510px;border-top-style:solid;border-bottom-style:solid;"><tr><tdstyle="width:114px;height:26px"><spanstyle="font-size:9pt">全选操作:</span></td><tdstyle="width:92px;height:26px"><asp:CheckBoxID="CheckBox2"runat="server"AutoPostBack="True"Font-Size="9pt"OnCheckedChanged="CheckBox2_CheckedChanged"Text="全选"Width="54px"/></td><tdstyle="width:120px;height:26px"><asp:ButtonID="btnCancel"runat="server"OnClick="Button3_Click"Text="取消全选"Width="79px"/></span></td><tdstyle="width:142px;height:26px"></td><tdstyle="width:54px;height:26px"></td><tdstyle="width:111px;height:26px"></td></tr></table>//单选、复选、全选protectedvoidCheckBox2_CheckedChanged(objectsender,EventArgse){for(inti=0;i<=ClassList.Rows.Count-1;i++){CheckBoxcbox=(CheckBox)ClassList.Rows[i].FindControl("CheckBox1");if(CheckBox2.Checked==true){cbox.Checked=true;}else{cbox.Checked=false;}}}//取消全选protectedvoidButton3_Click(objectsender,EventArgse){CheckBox2.Checked=false;for(inti=0;i<=ClassList.Rows.Count-1;i++){CheckBoxcbox=(CheckBox)ClassList.Rows[i].FindControl("CheckBox1");cbox.Checked=false;}}
解决方案十二:
不是这样的,应该是取鼠标的第一点和第二点,它们构成的一个矩形,在矩形内的数据被选择上。