如题:在ASP.NET中的DataGrid中,如何在鼠标经过一行时,点击这行后,选择这一行呀?
解决方案 »
- asp.net 网站上传后显示乱码(在本地浏览一切正常) 乱码如下:
- 关于查询的方法!哥哥们帮帮忙
- ASP.NET(C#)怪异问题,求救,请高手指点?
- 请问在asp.net开发中做数据录入界面,如何做数据校验
- 关于ASP.net对EXCEL文件进行写保护的问题!
- 超链接的一个新手问题
- 赚个40分
- !!! 明天结账 !!!
- "<input type=hidden value="和"name=__VIEWSTATE>"之间的一堆乱码是什么?
- asp.net发布网站的时候出现, "发布遇到错误,未将对象引用设置到对象的实例。"
- 存储过程不能返回表?
- 多分求解:在DataGrid中,怎麼根據某列的值設置某行的顏色?
=============================/*------------ DataGrid鼠标事件处理 ------------
功能:用于数据梆定后鼠标事件
参数说明:
obj:对像this
fontColor:字体颜色
backColor:背景颜色
----------------------------------------------*/var objState//------------鼠标经过时-----------
function OnFoucsMouseOver( obj,fontColor,backColor )
{
if ( obj.rowIndex > 0 )
{
obj.style.color = fontColor;
obj.style.backgroundColor = backColor;
}
}//-----------鼠标离开时-----------
function OnFoucsMouseOut( obj,fontColor,backColor )
{
if ( obj.rowIndex > 0 )
{
if ( obj != objState )
{
obj.style.color = fontColor;
obj.style.backgroundColor = backColor;
}
}
}//-----------鼠标单击时-----------
function OnFoucsClick( obj,fontColor,backColor )
{
if ( obj.rowIndex > 0 )
{
if ( objState != null )
{
objState.style.color = "";
objState.style.backgroundColor = "";
}
obj.style.color = fontColor;
obj.style.backgroundColor = backColor;
objState = obj;
}
}//-----------鼠标双击时-----------
function OnFoucsDbClick( obj,fontColor,backColor,openUrl )
{
//参数openUrl为要开的新窗口的地址
if ( obj.rowIndex > 0 )
{
if ( objState != null )
{
objState.style.color = "";
objState.style.backgroundColor = "";
}
obj.style.color = fontColor;
obj.style.backgroundColor = backColor;
objState = obj;
window.open( openUrl );
}
}==========================================后台数据梆定例子:========================================== private void dgList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//
if ( e.Item.ItemIndex != -1 )
{
e.Item.Attributes.Add( "onMouseOver","OnFoucsMouseOver(this,'#FFFFFF','#000000');" );
e.Item.Attributes.Add( "onMouseOut","OnFoucsMouseOut(this,'#000000','#FFFFFF');" );
e.Item.Attributes.Add( "onClick","OnFoucsClick( this,'#FFFFFF','#000000' );" );
e.Item.Attributes.Add( "onDblClick","OnFoucsDbClick( this,'#FFFFFF','#000000','about:bank' );" );
}
}==========================================前台.aspx页面调用JS文件:<script language="javascript" src="GridControl.js"></script>
=====================================/*-----------------调用说明-----------------
说明:可用于架设页面事件。
入口函数:OnFocusSet(....)
如:OnFocusSet( "#000000","#FFFFFF","#FFFFFF","#000000" )实用调用例子:
鼠标事件:
onMouseOver='OnFocusSet( "#000000","#FFFFFF","#FFFFFF","#000000" )'
单击事件:
onClick='OnFocusSet( "#000000","#FFFFFF","#FFFFFF","#000000" )'参数说明:
参数一[color]:未选中时的字体颜色
参数二[backColor]:未选中时的背景颜色
参数三[selectColor]:选中时的字体颜色
参数四[selectBackColor]:选中时的背景颜色
------------------------------------------*/
var Rows=new Array();
var ShiftStartRow="";
var setColor,setBackColor,setSelectColor,setSelectBackColor;/*---------主函数入口----------*/
function OnFocusSet( color,backColor,selectColor,selectBackColor )
{
setColor = color;
setBackColor = backColor;
setSelectColor = selectColor;
setSelectBackColor = selectBackColor;
Set();
}//-----------操作----------------
function Set()
{
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(obj)
{
for(var i=1;i<obj.parentElement.rows.length;i++)
{
obj.parentElement.rows(i).style.backgroundColor=setBackColor;
obj.parentElement.rows(i).style.color=setColor;
}
var keyValue="";
for(i=0;i<Rows.length;i++)
{
Rows[i].style.backgroundColor=setSelectBackColor;
keyValue += Rows[i].id+",";
Rows[i].style.color=setSelectColor;
}
}===========================================后台DataGrid梆定方法:===========================================private void dgList_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","OnFocusSet( '#000000','#FFFFFF','#FFFFFF','#000000' );");
}
}===========================================前台.aspx文件调用JS即可: <script language="javascript" src="GridColorControl.js"></script>
auto :标准光标
default :标准箭头
hand :手形光标
wait :等待光标
text :I形光标
vertical-text :水平I形光标
no-drop :不可拖动光标
not-allowed :无效光标
help :?帮助光标
all-scroll :三角方向标
move :移动标
crosshair :十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resizehand:是大家所熟悉的手型。
crosshair:是十字型,就是小乌龟首页所用的样式。
text:是平时鼠标移动到文本上的样式。
wait:是等待的效果。
default:是默认的那种效果。
help:是带问号的鼠标样式。
e-resize:是向右的箭头。
ne-resize:是向右上方的箭头。
n-resize:是向上的箭头。
nw-resize:是向左上方的箭头。
w-resize:是向左的箭关。
sw-resize:是向左下的箭头。
s-resize:是向下的箭头。
se-resize:是向右下方的箭头。
auto:是系统自动的效果
hand:是大家所熟悉的手型。
crosshair:是十字型,就是小乌龟首页所用的样式。
text:是平时鼠标移动到文本上的样式。
wait:是等待的效果。
default:是默认的那种效果。
help:是带问号的鼠标样式。
e-resize:是向右的箭头。
ne-resize:是向右上方的箭头。
n-resize:是向上的箭头。
nw-resize:是向左上方的箭头。
w-resize:是向左的箭关。
sw-resize:是向左下的箭头。
s-resize:是向下的箭头。
se-resize:是向右下方的箭头。
auto:是系统自动的效果
<style type="text/css">
<!--
.d {
border: 1px solid #0000FF;
}
-->
</style>然后在你的div中或者DataList的Item中加入
<div onclick="this.className='d'" onmousemove="this.style.cursor='hand'" onmouseout="this.style.cursor='default'">ddddddddddddddddd</div>
private void dgList_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)
{
LinkButton lb=(LinkButton)e.item[//选择所在列号].findcontrol["选择的id"]
lb.Attributes.Add("onClick","OnFocusSet( '#000000','#FFFFFF','#FFFFFF','#000000' );");
//再往onclick事件可增加更换图片代码就可以
}
}