DataGrid控件单击选中的实现方法
来源:互联网 发布:最火的网络歌手 编辑:程序博客网 时间:2024/04/28 02:45
实现的核心技术是使用的javascript
步骤一:创建js文件,如下
GridControl.js文件内容:
var Rows=new Array();var ShiftStartRow="";
function onfocusit()
{
iRow=window.event.srcElement;
do{
iRow=iRow.parentElement;
}while(iRow.tagName!='TR')
if(event.ctrlKey){
var j=-1;
for(i=0;i<Rows.length;i++)
{
if(iRow==Rows[i])
{
j=i;break;
}
}
if(j!=-1)
{
for(i=j;i<Rows.length-1;i++)
{
Rows[i]=Rows[i+1];
}
Rows.length=Rows.length-1;
}
else
{
Rows[Rows.length]=iRow;
}
ShiftStartRow=iRow;
}
else if(event.shiftKey)
{
if(ShiftStartRow!="")
{
var StartIndex=ShiftStartRow.rowIndex;
var EndIndex=iRow.rowIndex;
var oTable=iRow.parentElement;Rows.length=0;
if(StartIndex < EndIndex)
{
for(var i=StartIndex;i<EndIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}if(StartIndex >= EndIndex)
{
for(var i=EndIndex;i<StartIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
}
}else
{
Rows.length=1;
Rows[0]=iRow;
ShiftStartRow=iRow;
}
changeColor(iRow);
}
function changeColor(E)
{
for(var i=1;i<E.parentElement.rows.length;i++)
{
E.parentElement.rows(i).style.backgroundColor="#FFFFFF";
E.parentElement.rows(i).style.color="black";
}
var keyValue="";
for(i=0;i<Rows.length;i++)
{
Rows[i].style.backgroundColor="highlight";
keyValue += Rows[i].id+",";
Rows[i].style.color="white";
}
}
步骤二:将上面创建的GridControl.js文件包含在有DataGrid控件的aspx文件中
<script language="javascript" src="GridControl.js"></script>
步骤三:在有DataGrid控件的文件中给DataGrid控件添加ItemDataBound事件,如下
Datagrid.aspx.cs的文件
private void MyDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//添加单击
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.SelectedItem)
{
//添加单击选中事件
e.Item.Attributes.Add("onclick","onfocusit();");
}
}
好了,现在就OK了,运行一下试试吧!
步骤一:创建js文件,如下
GridControl.js文件内容:
var Rows=new Array();var ShiftStartRow="";
function onfocusit()
{
iRow=window.event.srcElement;
do{
iRow=iRow.parentElement;
}while(iRow.tagName!='TR')
if(event.ctrlKey){
var j=-1;
for(i=0;i<Rows.length;i++)
{
if(iRow==Rows[i])
{
j=i;break;
}
}
if(j!=-1)
{
for(i=j;i<Rows.length-1;i++)
{
Rows[i]=Rows[i+1];
}
Rows.length=Rows.length-1;
}
else
{
Rows[Rows.length]=iRow;
}
ShiftStartRow=iRow;
}
else if(event.shiftKey)
{
if(ShiftStartRow!="")
{
var StartIndex=ShiftStartRow.rowIndex;
var EndIndex=iRow.rowIndex;
var oTable=iRow.parentElement;Rows.length=0;
if(StartIndex < EndIndex)
{
for(var i=StartIndex;i<EndIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}if(StartIndex >= EndIndex)
{
for(var i=EndIndex;i<StartIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
}
}else
{
Rows.length=1;
Rows[0]=iRow;
ShiftStartRow=iRow;
}
changeColor(iRow);
}
function changeColor(E)
{
for(var i=1;i<E.parentElement.rows.length;i++)
{
E.parentElement.rows(i).style.backgroundColor="#FFFFFF";
E.parentElement.rows(i).style.color="black";
}
var keyValue="";
for(i=0;i<Rows.length;i++)
{
Rows[i].style.backgroundColor="highlight";
keyValue += Rows[i].id+",";
Rows[i].style.color="white";
}
}
步骤二:将上面创建的GridControl.js文件包含在有DataGrid控件的aspx文件中
<script language="javascript" src="GridControl.js"></script>
步骤三:在有DataGrid控件的文件中给DataGrid控件添加ItemDataBound事件,如下
Datagrid.aspx.cs的文件
private void MyDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//添加单击
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.SelectedItem)
{
//添加单击选中事件
e.Item.Attributes.Add("onclick","onfocusit();");
}
}
好了,现在就OK了,运行一下试试吧!
- DataGrid控件单击选中的实现方法
- easyui datagrid组件 单击行 让他不选中 只有单击checkbox的时候才选中
- easyui datagrid组件 单击行 让他不选中 只有单击checkbox的时候才选中
- C#treeView控件单击事件选中节点滞后问题解决方法
- easyui datagrid组件 单击全选 让指定的几行不选中,没指定的依然选中
- 关于如何实现编辑框单击时自动选中全部内容的方法
- DataGrid双击选中单元格该为单击
- easyui datagrid 单击行不选中
- C#treeView控件单击事件选中节点的问题
- 在Web窗体的DataGrid控件实现鼠标悬停被选中样式
- DataGrid里选中Row的方法
- DataGrid 单击某行选中该第一列单选框 单选框单选
- aspxgridview 单击行的事件实现方法
- easyui-datagrid控件保存选中项,每次打开页面上次被选中的行前面都被勾选
- EasyUI - datagrid中单元格里编辑控件的单击事件如何获取当前行的index
- 选择控件单击选择事件使选中的文件至顶状态
- DataGrid的分页实现方法
- DataGrid的分页实现方法
- IE与Firefox的CSS兼容大全
- SQL 精妙语句收集
- 如何对ListView的项进行排序
- CustomActionData 属性 自定义安装类
- 中华人民共和国劳动合同法
- DataGrid控件单击选中的实现方法
- 四种有用的过滤器
- 访问祖先类的虚方法
- MSDN WebCast 英文网络广播全部下载列表
- Java 中 this 的使用方法
- 让Pojo的setters和getters做些该做的事情--初始化!
- ARM 指令集
- Orace DB Link
- WEB页面开发的简单易用的打印方法