请教如何在datagrid中实现“层”操作,即像www。btchina.net搜索结果中,当鼠标移到某行时,出现一个层,介绍详细内容,最好有源码

解决方案 »

  1.   

    先放个隐藏层,然后在
    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';");
    }}
      

  2.   

    放一个模版列,在模版列中放一个DIV,DIV的title放详细内容
      

  3.   

    net_lover(孟子E章) :
      能具体点吗?把页面代码也贴出来吧!
      

  4.   

    我给你一个清楚的先是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();");

    }
    }