首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • datalist中怎么给生成的td属性加onmouseover事件
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 15:59:58 楼主
    datalist中怎么给生成的td属性加onmouseover事件
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:05:351楼 得分:0
    如果你是在后台直接写td的html代码  那就 <td onmouseover="alert('afdasf')">aaaa </td>
    如果你是在后台用HtmlTableCell生成的话  就用
    C# code
    HtmlTableCell cell = new HtmlTableCell(); cell.Attributes.Add("onmouseover", "alert('afdasf')");
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:05:462楼 得分:0
    从DATALIST派生一个类,重写父类的预呈现方法,加上onmouseover即可
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:08:183楼 得分:0
    ItemDataBound事件里面写
    //如果是数据项并且是交替项 
    if(e.Item.ItemType==ListItemType.Item ¦ ¦e.Item.ItemType==ListItemType.AlternatingItem) 

    //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色 
    e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='Oldlace'"); 
    //添加自定义属性,当鼠标移走时还原该行的背景色 
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); 
    }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:08:284楼 得分:0
    <asp:DataList ID="dltSheng" runat="server" RepeatColumns="18" CellPadding="3" Width="100%"  OnItemDataBound="dltSheng_ItemDataBound1">
                        <ItemTemplate>
         
                          <%#DataBinder.Eval(Container.DataItem,"name")%>
                         
                        </ItemTemplate>
                    </asp:DataList>

    以上代码在生成页中会生成一个table.我的意思是我想在生成的这个table中,给td属性加个onmouseover 事件.我想在后台代码中加.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinjazz
    • 等级:
    发表于:2008-05-16 16:14:235楼 得分:0
    http://www.codeproject.com/KB/webforms/DataListHighlightingClick.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:16:256楼 得分:0
    不好意识 看成TR了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:17:517楼 得分:0
    protected void dltSheng_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item)
            {
                e.Item.Attributes.Add("onmouseover", "showXY(this,divLmkj_" + this.dltSheng.DataKeys[e.Item.ItemIndex].ToString() + ")");
               
            }
        }


    我后台用了这段代码(并且代码也执行啦).可前台生成的td中根本没有想要的结果.什么都没有
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinjazz
    • 等级:
    发表于:2008-05-16 16:18:558楼 得分:0
    你可以更改datalist的模版
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:23:259楼 得分:0
    引用 3 楼 belldandy11 的回复:
    ItemDataBound事件里面写
    //如果是数据项并且是交替项   
    if(e.Item.ItemType==ListItemType.Item ¦ ¦e.Item.ItemType==ListItemType.AlternatingItem)   
    {   
    //添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色   
    e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='Oldlace'");   
    //添加自定义属性,当鼠标移走时还原该行的…

    这种办法可行,还可以用FormView来做,这样添加JS方便多了。FormView和DetailsView的作用是一样的,不过它呈现的方式更灵活。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:27:2410楼 得分:0
    引用 7 楼 happyfly2003 的回复:
    protected void dltSheng_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item)
            {
                e.Item.Attributes.Add("onmouseover", "showXY(this,divLmkj_" + this.dltSheng.DataKeys[e.Item.ItemIndex].ToString() + ")");
               
            }
        }


    我后台用了这段代码(并且代码也执行啦).可前台生成的td中根本没有想要的结果…
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hy_lihuan
    • 等级:
    发表于:2008-05-16 16:30:3711楼 得分:0
    有这么复杂吗?直接前台写js;后台写datalist代码(添加你要的事件属性);生成的html里面把你要的td的名字附上不就行了?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:30:5712楼 得分:0
    用以上代码没生成想要的结果.

    生成如下片段:
    <table id="Top1_dltSheng" cellspacing="0" cellpadding="3" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>


    看以上td里根本没有 onmouseove事件!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:37:3213楼 得分:0
    想让onmouseover做什么事?说清楚一点啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:41:1614楼 得分:0
    随便啦. 能弹出个对话框也行.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:46:5415楼 得分:0
    在后台添加的这些代码在源文件里是看不到的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:51:0216楼 得分:0
    引用 5 楼 jinjazz 的回复:
    http://www.codeproject.com/KB/webforms/DataListHighlightingClick.aspx

    看这个

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:53:3317楼 得分:0
    HTML code
    <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <table id="tb1"> <tr><td>aaaa</td></tr> <tr><td>bbbb</td></tr> </table> </div> </form> </body> </html> <script> obj = document.getElementById('tb1'); for(var i=0;i<obj.rows.length;i++) { for(var j=0;j<obj.rows[i].cells.length;j++) { obj.rows[i].cells[j].attachEvent('onmouseover',rcolor); obj.rows[i].cells[j].attachEvent('onmouseout',ccolor); } } function rcolor() { var t=event.srcElement.parentElement; t.style.backgroundColor="blue"; } function ccolor() { var t=event.srcElement.parentElement; t.style.backgroundColor="white"; } </script>


    写了个变颜色的,参照的改
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 17:24:0418楼 得分:0
    可以重写页面的Render,将所有的td标记替换,请参考

    C# code
    protected override void Render(HtmlTextWriter writer) { System.IO.StringWriter stringWriter = new System.IO.StringWriter(); HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter); base.Render(htmlWriter); string html = stringWriter.ToString(); html = html.Replace("<td", "<td onmouseover=\"javascript:alert('aa')\""); writer.Write(html); }


    我对正则不熟,应该替换的是在 <table id="DataList1" ...> </table>里的所有td标记
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved