我在WEB应用中,用DataGrid显示信息,想通过鼠标双击任意行,将详细信息显示出来,可VS中只找到双击某一单元格响应事件,或通过超连按纽,效果不是很满意, 想请教各位大哥,求教双击整个行都响应事件的方法。
郁闷好几天了,大哥们帮忙啊:)
it is a good idea to provide both a 超连按纽 and a dblclick event handle, for example
private void DataGrid1_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType itemType = e.Item.ItemType;
if ((itemType == ListItemType.Pager) ||
(itemType == ListItemType.Header) ||
(itemType == ListItemType.Footer))
{
return;
}
LinkButton button = (LinkButton)e.Item.Cells[0].Controls[0];
e.Item.Attributes["ondblclick"] =
Page.GetPostBackClientHyperlink(button, "");
}
我觉得这也不失为一个方法
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="300" border="1">
<TR ondblclick="showDetail(<%# DataBinder.Eval(Container.DataItem, "说明字段名").ToString()%>);" onmouseout="hide();">
<TD><%# DataBinder.Eval(Container.DataItem, "字段名1" %></TD>
<TD><%# DataBinder.Eval(Container.DataItem, "字段名2" %></TD>
<TD><%# DataBinder.Eval(Container.DataItem, "字段名3" %></TD>
</TR>
</TABLE>
<script language=javascript>
<!--
var tips=null;
function document.body.onload()
{
tips=document.createElement("<div>");
tips.style.visibility="hidden";
tips.style.position="absolute";
tips.style.backgroundColor="yellow";
tips.style.zIndex=1;
document.body.appendChild(tips);
}
function showDetail(str)
{
tips.style.top=window.event.clientY;
tips.style.left=window.event.clientX;
tips.innerText=str;
tips.style.visibility="visible";
}
function hide()
{
if(tips.style.visibility=="visible")
tips.style.visibility="hidden";
}
//-->
</script>
if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem){
e.Item.Attributes["OnMouseOut"]="javascript:this.bgColor=#0000FF;";
e.Item.Attributes["OnMouseOver"]="javascript:this.bgColor=#FFFFFF;";
e.Item.Attributes["OnDblClick"]="javascript:alert(Double Click);";
e.Item.Style.Add("CURSOR","hand");
}