当前位置:编程学习 > C#/ASP.NET >>

datalist上的hyperlink文字获取


图片是一个datalist上的itemtemplate的imge和hyperlink,我想通过mouseover和mouseout事件,当鼠标移动hyperlink上时显示相对应的人的头像,头像是预先设置好和名字在数据库中是对应的。但是我运行时,当鼠标移动到名字上显示的头像都是第一个人的头像。
代码如下:
<ItemTemplate>
                        <asp:Image ID="Image1" runat="server" Height="16px"  ></asp:Image>
                        <asp:HyperLink id="HyperLink1" runat="server" >[HyperLink1]</asp:HyperLink>
                       <%--<asp:button id="but1" runat="server" Width="28px" Text="头像" CssClass="ButtonCss" ></asp:button>  --%>
                    </ItemTemplate>

<script>
   function GetPos(obj){
      var pos=new Object();
     pos.x=obj.offsetLeft;
     pos.y=obj.offsetTop;
     while(obj=obj.offsetParent){
         pos.x+=obj.offsetLeft;
         pos.y+=obj.offsetTop;
     }
     return pos;
    }
    function init() {
        var img = window.parent.document.getElementById("headportrait");

        if (img.style.display != "none") {
            img.style.display = "none";
        }
    }
    function showImg() {
       var url = "../../SubModule/user/HeadPortrait/20121117 112144body.gif";
        var img = window.parent.document.getElementById("headportrait");
       img.style.zIndex="1000";
//        img.style.position="absolute";
        img.style.width =60;
        img.style.height = 60;
//        img.style.top=200;
//        img.style.left=200;
        var hy=document.getElementById("DataList1");

        var pos=GetPos(hy);
        img.style.left="2px";
        img.style.top="2px";
        img.src = url;
        ShowHeadPortrait()
        if (img.style.display == "none") {
            img.style.display = "block";
        }
    }
        // Firefox, Opera 8.0+, Safari

        var xmlhttp=getXmlhttp();
    function ShowHeadPortrait()
    {
        
        if(xmlhttp==null)
        {
            alert("xmlhttp wrong");
        }
        url="online_user.aspx?c='1'"+Math.random();
        xmlhttp.onreadystatechange=stateChange;
        xmlhttp.open('get',url,true);
        xmlhttp.send(null);
    }
    function stateChange()
    {
        if(xmlhttp.readyState==4)
        {
        
        if(xmlhttp.responseText!=null)
            window.parent.document.getElementById("headportrait").src="../../SubModule/user/"+xmlhttp.responseText;
            
        }
    }

ListItemType lit = e.Item.ItemType;
            switch (lit)
            {
                case ListItemType.Item:
                    HyperLink hl = (HyperLink)e.Item.FindControl("HyperLink1");

                    /*if (!IsLocalIP() && GetUserIDFromUserName(hl.Text) == Session["UserID"].ToString())
                    {
                        hl.ForeColor = Color.Blue;
                    }*/
                    hl.Text = e.Item.DataItem.ToString();
                    //Session["UserID"] = hl.Text;
                    //Alert(Session["UserID"]);
                    hl.Target = "main";
                    hl.NavigateUrl = "javascript:Lin(\"../message/new_message.aspx?type=3&addreess=" + Public.Public_Declare.LogonUserID[e.Item.ItemIndex] + "\")";
                    hl.ToolTip = "给我发邮件吧";

                    string url = "",imgurl="";
                    SqlDataReader drHead = db.ExecuteDataReader("select head_portrait from t_sys_users where id='" + Public.Public_Declare.LogonUserID[e.Item.ItemIndex] + "'", conn);
                    if (drHead.Read())
                    {
                        if (drHead["head_portrait"].ToString() != "")
                        {
                            url = drHead["head_portrait"].ToString();
                            imgurl= "HeadPortrait/" + System.IO.Path.GetFileName(url);
                        }
                    }
                    drHead.Close();
                    if (Request.QueryString["c"] != null)
                    {

                        Response.Write(imgurl);
                        Response.End();
                    }
                    //Response.Write(imgurl);
                    //Response.End();

                    hl.Attributes.Add("onmouseover", "showImg()");
                    hl.Attributes.Add("onmouseout", "init()");

求大神们指点一下。 --------------------编程问答-------------------- 没人帮忙一下啊,自顶 --------------------编程问答-------------------- 当鼠标移动到名字上显示的头像都是第一个人的头像。
==看看参数是否都一样了?如果不是去后台看看。查询对应的头像那出错了。设个断点跟踪下 --------------------编程问答--------------------
引用 2 楼 kongwei521 的回复:
当鼠标移动到名字上显示的头像都是第一个人的头像。
==看看参数是否都一样了?如果不是去后台看看。查询对应的头像那出错了。设个断点跟踪下

查过了,当界面初始化的时候,名字是一次性加载上去的,只要登录的就加载。但是我的头像弹出是根据鼠标移动的时候才运行的,所以它始终获得的是加载的第一个人的名字。 --------------------编程问答-------------------- var url = "../../SubModule/user/HeadPortrait/20121117 112144body.gif";
这里是不是写死了?
鼠标移动时没有传参数? --------------------编程问答--------------------
引用 4 楼 kongwei521 的回复:
var url = "../../SubModule/user/HeadPortrait/20121117 112144body.gif";
这里是不是写死了?
鼠标移动时没有传参数?

img.src = url;         
ShowHeadPortrait();
这里重新赋值了,所以不会写死的。 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,