我在网页中制作了一个gridview,其中一列是按钮列(此列已有click事件)现在我需要实现如下的功能:1)单击此列某个cells后能在此cells右下方出现关于点击内容的“详细说明窗口”(可以是窗口也可以是其他);2)当鼠标再点击“详细说明窗口”以外的区域时,这个“说明窗口自动消失”有哪位大侠能帮我解决一下问题马,很急!,小弟,万分感谢

解决方案 »

  1.   

    拖一个DetailView,设置一下传递的DataKey.from gridview control.
    然后在DetailView查询DataKey的数据
      

  2.   

    ls的搞错了
    他不是要实现详细信息的显示啊
    他只是要显示提示,然后提示消失
    div吧
      

  3.   

    直接用Cell的ToolTip就好了
    先给相应的Cell的ToolTip附上相应的“详细说明”
    当鼠标移动到这个才Cell的时候,自动就会显示 详细说明窗口 了
      

  4.   

    js实现,在网上找个js的这种动作(点击一个钮弹出一个层,点击其它地方层消失,要支持递归),然后自己改改嵌在gridview里
      

  5.   

    基本浮动层+javascript可以解决
      

  6.   

    直接用ToolTip属性啊,
    for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
            {
                DataRowView mydrv;
                string gIntro;
                if (GridView1.PageIndex == 0)
                {
                    mydrv = myds.Tables["飞狐工作室"].DefaultView[i];//表名
                    gIntro = Convert.ToString(mydrv["家庭住址"]);//所要处理的字段
                    GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 2);
                }
                else
                {
                    mydrv = myds.Tables["飞狐工作室"].DefaultView[i + (5 * GridView1.PageIndex)];
                    gIntro = Convert.ToString(mydrv["家庭住址"]);
                    GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 2);
                    GridView1.Rows[i].Cells[3].  ToolTip=gIntro;
                }
            } 调用的方法:    public string SubStr(string sString, int nLeng)
        {
            if (sString.Length <= nLeng)
            {
                return sString;
            }
            string sNewStr = sString.Substring(0, nLeng);
            sNewStr = sNewStr + "...";
            return sNewStr;
        }
      

  7.   


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Temp.aspx.cs" Inherits="Temp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
            <script language="javascript" type="text/javascript">
        function show(obj)
        {   
            var table=document.getElementById('GridView1');
            var top=table.offsetTop+obj.offsetTop+obj.offsetHeight-2;
            var left=table.offsetLeft+obj.offsetLeft+obj.offsetWidth+10;        var div=document.getElementById('detailsDiv');
            div.style.display='';
     
            div.style.top = top + "px"
            div.style.left = left + "px";
            div.style.backgroundColor="red";
            div.focus();    }    //onload='getTime()'
        </script>  
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" >
        </asp:GridView>
        <div id='detailsDiv' style="position:absolute;display:none" onBlur='javascript:this.style.display="none";'>test</div>
        </div>
        </form>
    </body>
    </html>
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    public partial class Temp : System.Web.UI.Page
    {
        protected ICollection CreateDataSource()
        {        System.Data.DataTable dt = new System.Data.DataTable();
            System.Data.DataRow dr;
            dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));
            dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
            dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
            dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
            dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
            dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));
            dt.Columns.Add(new System.Data.DataColumn("布尔", typeof(System.Boolean)));        for (int i = 0; i < 11; i++)
            {
                System.Random rd = new System.Random(Environment.TickCount * i); ;
                dr = dt.NewRow();
                dr[0] = "班级" + i.ToString();
                dr[1] = "学生" + i.ToString();
                dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
                dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
                dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
                dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
                dr[6] = i % 2 == 0 ? true : false;
                dt.Rows.Add(dr);
            }
            System.Data.DataView dv = new System.Data.DataView(dt);        return dv;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            GridView1.DataSource = CreateDataSource();
            GridView1.DataBind();
            
        }
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string str = "show(this);document.getElementById('detailsDiv').innerHTML='当前选择行是" + e.Row.RowIndex;
                str += "<br>班级:" + e.Row.Cells[0].Text;
                str += "<br>姓名:" + e.Row.Cells[1].Text;
                str += "<br>语文:" + e.Row.Cells[2].Text;
                str += "<br>数学:" + e.Row.Cells[3].Text;
                str += "<br>英语:" + e.Row.Cells[4].Text;
                str += "<br>计算机:" + e.Row.Cells[5].Text;
                str += "';";
                e.Row.Cells[1].Attributes.Add("onclick", str);
            }
        }
    }
      

  8.   

    我给的是主要代码.你整理一下就OK了.结贴吧.
    <head runat="server">
        <title>无标题页</title>
            <script language="javascript" type="text/javascript">function imgBtnUserMoveOnClick ()
      {
       //alert(window.event.clientX);
       document.all.windowMoveing.style.left =window.event.clientX-100;
       windowMoveing.style.top =window.event.clientY-80;
       windowMoveing.style .display ='';  
       
       return false;
      }
      //隐藏
      function moveCancer()
      {
      windowMoveing.style .display ='none';
      }
    </script>..............
    .................
    ..............
    <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" >
        </asp:GridView><div id="windowMoveing" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; DISPLAY: none; BACKGROUND: #ffffff; BORDER-LEFT: #000000 1px solid; WIDTH: 200px; BORDER-BOTTOM: #000000 1px solid; POSITION: absolute; HEIGHT: 70px; TEXT-ALIGN: center">
    GridView1_RowDataBound事件里:btn.Attributes["onclick"] ="return imgBtnUserMoveOnClick();
      

  9.   

    如果想实现简单的提示功能可以用ToolTip
    这个是最简单可行的.
      

  10.   


    感谢lishijie910123,Sandy945 两位给我提供的帮助,Sandy945的方法十分好用,再次深表感谢!