请教如何在datagrid中实现“层”操作 请教如何在datagrid中实现“层”操作,即像www。btchina.net搜索结果中,当鼠标移到某行时,出现一个层,介绍详细内容,最好有源码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先放个隐藏层,然后在private void DataGrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e) { if( e.Item.ItemIndex != -1 ) { e.Item.Attributes.Add("onmouseover", "divID.style.visible='visible';divID.style.left=event.clinetX"); e.Item.Attributes.Add("onmouseout", "divID.style.visible='hidden';");}} 放一个模版列,在模版列中放一个DIV,DIV的title放详细内容 net_lover(孟子E章) : 能具体点吗?把页面代码也贴出来吧! 我给你一个清楚的先是javascriptfunction ShowTooltip(title,publishtime,typename,real,et,code,content) { document.getElementById("td_title").innerText=title; document.getElementById("td_publishtime").innerText=publishtime; document.getElementById("td_typename").innerText=typename; document.getElementById("td_real").innerText=real; document.getElementById("td_et").innerText=et; document.getElementById("td_code").innerText=code; document.getElementById("td_content").innerHTML=content; x = event.clientX + document.body.scrollLeft; y = event.clientY + document.body.scrollTop + 10; Popup.style.display="block"; Popup.style.left = x; Popup.style.top = y; } function Show() { Popup.style.display="block"; } function HideTooltip() { Popup.style.display="none"; }接着是层的东西<div class="detail" id="Popup" onmouseover="Show();" style="Z-INDEX: 100" onmouseout="HideTooltip();"> <div align="center"><b>详细内容</b></div> <div> <table cellSpacing="0" cellPadding="0"> <tr> <td width="50"><b>标题:</b></td> <td id="td_title" align="left" width="250" colSpan="5"></td> </tr> <tr> <td width="50"><b>菜单:</b></td> <td id="td_typename" align="left" width="250" colSpan="5"></td> </tr> <tr> <td width="50"><b>时间:</b></td> <td id="td_publishtime" align="left" width="250" colSpan="5"></td> </tr> <tr> <td width="50"><b>实时:</b></td> <td id="td_real" align="left" width="20"></td> <td width="50"><b>市场:</b></td> <td id="td_et" align="left" width="30"></td> <td width="50"><b>代码:</b></td> <td id="td_code" align="left" width="100"></td> </tr> <tr> <td align="left" width="50"><b>内容:</b></td> <td id="td_content1" align="left" width="250" colSpan="5"><asp:label id="td_content" runat="server" Width="100%"></asp:label></td> </tr> </table> </div> </div>还有css东东div.detail{ border-right: silver thin inset; table-layout: fixed; border-top: silver thin inset; border-left: silver thin inset; cursor: text; border-bottom: silver thin inset; position: absolute; background-color: beige;}最后是cs代码在ItemDataBound里面加这些东西private void InfoDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if (e.Item.DataItem != null) { string test=DataBinder.Eval(e.Item.DataItem,InfoData.SYNCSSZX_FIELD).ToString(); if((bool)DataBinder.Eval(e.Item.DataItem,InfoData.SYNCSSZX_FIELD)) ((System.Web.UI.WebControls.Image)e.Item.FindControl("IsRid")).ImageUrl="images/check.gif"; else ((System.Web.UI.WebControls.Image)e.Item.FindControl("IsRid")).ImageUrl="images/checkno.gif"; ((HyperLink)e.Item.FindControl("TitleLink")).NavigateUrl="InfoPublish.aspx?Type=Edit&ID="+DataBinder.Eval(e.Item.DataItem,InfoData.ID_FIELD).ToString(); int P_Date=(int)DataBinder.Eval(e.Item.DataItem,InfoData.PDATE_FIELD); int P_Time=(int)DataBinder.Eval(e.Item.DataItem,InfoData.PTIME_FIELD); e.Item.Cells[(int)ColNum.PublishTime].Text=ConvertDataTime(P_Date,P_Time); string Content=DataBinder.Eval(e.Item.DataItem,InfoData.CONTENT_FIELD).ToString(); Content=Content.Replace("'","`"); Content=Content.Replace("\"","\\\""); Content=Content.Replace("\r\n","<br>"); if(Content.Length>300) Content=Content.Substring(0,299)+"……"; string Title=DataBinder.Eval(e.Item.DataItem,InfoData.TITLE_FIELD).ToString(); Title=Title.Replace("'","`"); Title=Title.Replace("\"","\\\""); /* if(Title.Length>20) { Title=Title.Substring(0,19); e.Item.Cells[(int)ColNum.Title].Text=e.Item.Cells[(int)ColNum.Title].Text.Substring(0,19); } *///一下是加入显示tip的,是你需要的 e.Item.Cells[(int)ColNum.Title].Attributes.Add("onmouseover", "ShowTooltip('" + Title + "','" + e.Item.Cells[(int)ColNum.PublishTime].Text + "','" + DataBinder.Eval(e.Item.DataItem, InfoData.MENUNAME_FIELD).ToString() + "','" + DataBinder.Eval(e.Item.DataItem, InfoData.SYNCSSZX_FIELD).ToString() + "','" + DataBinder.Eval(e.Item.DataItem, InfoData.MARKET_FIELD).ToString() + "','" + DataBinder.Eval(e.Item.DataItem, InfoData.CODE1_FIELD).ToString() + "','" + Content+ "');"); e.Item.Attributes.Add("onmouseout","HideTooltip();"); } } 这样的数据,怎么排序,比较快 菜鸟提问 这个在release版本里不起作用!郁闷 有些论坛发布文章前预览功能是如何实现的? 关于word中取消选中问题,请大家帮忙!在线等 100分求实现根据数据集的数据生成变化曲线!解决立刻给分! 关于开发三层架构的问题? 如何下载2进制文件?如何读写2进制文件? 靠!又碰见不该有的问题,照书打也错。大家看看,不要笑。 c#?!?!?! 不知是我的错,还是MS有BUG,搞不清 为什么excel中读出的是空值(明明不是空的)??
private void DataGrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if( e.Item.ItemIndex != -1 )
{
e.Item.Attributes.Add("onmouseover", "divID.style.visible='visible';divID.style.left=event.clinetX");
e.Item.Attributes.Add("onmouseout", "divID.style.visible='hidden';");
}}
能具体点吗?把页面代码也贴出来吧!
{
document.getElementById("td_title").innerText=title;
document.getElementById("td_publishtime").innerText=publishtime;
document.getElementById("td_typename").innerText=typename;
document.getElementById("td_real").innerText=real;
document.getElementById("td_et").innerText=et;
document.getElementById("td_code").innerText=code;
document.getElementById("td_content").innerHTML=content;
x = event.clientX + document.body.scrollLeft;
y = event.clientY + document.body.scrollTop + 10;
Popup.style.display="block";
Popup.style.left = x;
Popup.style.top = y;
}
function Show()
{
Popup.style.display="block";
} function HideTooltip()
{
Popup.style.display="none";
}
接着是层的东西<div class="detail" id="Popup" onmouseover="Show();" style="Z-INDEX: 100" onmouseout="HideTooltip();">
<div align="center"><b>详细内容</b></div>
<div>
<table cellSpacing="0" cellPadding="0">
<tr>
<td width="50"><b>标题:</b></td>
<td id="td_title" align="left" width="250" colSpan="5"></td>
</tr>
<tr>
<td width="50"><b>菜单:</b></td>
<td id="td_typename" align="left" width="250" colSpan="5"></td>
</tr>
<tr>
<td width="50"><b>时间:</b></td>
<td id="td_publishtime" align="left" width="250" colSpan="5"></td>
</tr>
<tr>
<td width="50"><b>实时:</b></td>
<td id="td_real" align="left" width="20"></td>
<td width="50"><b>市场:</b></td>
<td id="td_et" align="left" width="30"></td>
<td width="50"><b>代码:</b></td>
<td id="td_code" align="left" width="100"></td>
</tr>
<tr>
<td align="left" width="50"><b>内容:</b></td>
<td id="td_content1" align="left" width="250" colSpan="5"><asp:label id="td_content" runat="server" Width="100%"></asp:label></td>
</tr>
</table>
</div>
</div>还有css东东div.detail
{
border-right: silver thin inset;
table-layout: fixed;
border-top: silver thin inset;
border-left: silver thin inset;
cursor: text;
border-bottom: silver thin inset;
position: absolute;
background-color: beige;
}最后是cs代码
在ItemDataBound里面加这些东西private void InfoDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.DataItem != null)
{
string test=DataBinder.Eval(e.Item.DataItem,InfoData.SYNCSSZX_FIELD).ToString();
if((bool)DataBinder.Eval(e.Item.DataItem,InfoData.SYNCSSZX_FIELD))
((System.Web.UI.WebControls.Image)e.Item.FindControl("IsRid")).ImageUrl="images/check.gif";
else
((System.Web.UI.WebControls.Image)e.Item.FindControl("IsRid")).ImageUrl="images/checkno.gif";
((HyperLink)e.Item.FindControl("TitleLink")).NavigateUrl="InfoPublish.aspx?Type=Edit&ID="+DataBinder.Eval(e.Item.DataItem,InfoData.ID_FIELD).ToString();
int P_Date=(int)DataBinder.Eval(e.Item.DataItem,InfoData.PDATE_FIELD);
int P_Time=(int)DataBinder.Eval(e.Item.DataItem,InfoData.PTIME_FIELD);
e.Item.Cells[(int)ColNum.PublishTime].Text=ConvertDataTime(P_Date,P_Time);
string Content=DataBinder.Eval(e.Item.DataItem,InfoData.CONTENT_FIELD).ToString();
Content=Content.Replace("'","`");
Content=Content.Replace("\"","\\\"");
Content=Content.Replace("\r\n","<br>"); if(Content.Length>300)
Content=Content.Substring(0,299)+"……"; string Title=DataBinder.Eval(e.Item.DataItem,InfoData.TITLE_FIELD).ToString();
Title=Title.Replace("'","`");
Title=Title.Replace("\"","\\\"");
/*
if(Title.Length>20)
{
Title=Title.Substring(0,19);
e.Item.Cells[(int)ColNum.Title].Text=e.Item.Cells[(int)ColNum.Title].Text.Substring(0,19);
}
*/
//一下是加入显示tip的,是你需要的
e.Item.Cells[(int)ColNum.Title].Attributes.Add("onmouseover", "ShowTooltip('" +
Title + "','" +
e.Item.Cells[(int)ColNum.PublishTime].Text + "','" +
DataBinder.Eval(e.Item.DataItem, InfoData.MENUNAME_FIELD).ToString() + "','" +
DataBinder.Eval(e.Item.DataItem, InfoData.SYNCSSZX_FIELD).ToString() + "','" +
DataBinder.Eval(e.Item.DataItem, InfoData.MARKET_FIELD).ToString() + "','" +
DataBinder.Eval(e.Item.DataItem, InfoData.CODE1_FIELD).ToString() + "','" +
Content+
"');");
e.Item.Attributes.Add("onmouseout","HideTooltip();");
}
}