怎样给DataGrid的超级链接列添加双击事件? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用<asp:hyperlinkcolumn/>是实现不了楼主的需求,因为<asp:hyperlinkcolumn/>是不能直接添加ondbclick属性的,因此若是想实现,就只有用模板列,然后添加HyperLink控件,具体可以这样:.aspx文件中:<asp:datagrid id="DataGrid1" runat="server"> <columns> <asp:templatecolumn> <itemtemplate> <asp:hyperlink id="myLink" runat="server" navigateurl="#">HyperLink</asp:hyperlink> </itemtemplate> </asp:templatecolumn> </columns> </asp:datagrid>然后在DataGrid控件的ItemDataBound事件处理程序添加如下代码:private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if((HyperLink)e.Item.FindControl("myLink") != null) { ((HyperLink)e.Item.FindControl("myLink")).Attributes.Add("ondbclick","alert('hello,you have clicked me double.');"); } } 更正:((HyperLink)e.Item.FindControl("myLink")).Attributes.Add("ondbclick","alert('hello,you have clicked me double.');");其中的ondbclick 应为 ondblclick TO:Jinglecat(晓风残月) 这样用户不好使用呀,我试了一下。还没有双击完,就已经联接到别的地方了。我是想实现这样的效果,当单击时联接到一个页面,双击时(或其它)联接到另外一个页面怎么搞? 你必须将该链接的链接地址改为#,然后在事件里面让页面转向比如:<a href=# onclick="document.location.href='xxx.aspx';" ondblclick="document.location.href='bbb.aspx';">链接</a>语法构造必须达到上述效果. 试验了一下,发觉不能把单击事件与双击事件写在一起,否则第一次点击时,就已经响应了,不可能再进行第二次点击.可能楼主的想法不能实现.<a href=# ondblclick="document.location.href='bbb.aspx';">链接</a> 对于<a/>标签,有几点想法,设置 href 属性 和 onclick的触发事件是一样的,都是单击,只是onclick在 href(也就是跳转页面)之前,同时只有onclick的事件处理程序返回true才继续跳转,用鼠标的都知道,onclick和ondblclick,对于用户体验并不是很好,更不用说在web上了,浏览器的DHTML模型好像对onclick和ondblclick的响应不是很精确,刚才偶也是没考虑倒这一点,以为楼主只要实现双击就可以了,因此想要精确响应onclick和ondblclick可能不是很现实,偶能想到的就是利用下拉菜单,用隐藏层实现,见显示菜单层程序加到onclick事件,方法同上, 求一個算法 请高手们看看这个问题 服务器错误 函数Test()在Release执行,在Debug的时不执行,这个怎么写?谢谢 谁有关于网站建设方面的资料!! 奇怪的问题:脚本删除,竟然还能运行,好像有“记忆效应” 请问如何不让dll被Reflector反编译!就20分了 NHibernate一个简单的问题 请问www.brinkster.com申请asp.net免费空间的步骤 急救!!!!!!!!!!!!!!!!!!!!!!! 在线请教一个关于ASP.net加载用户控件后运行时出现的错误 求救使用serv-u6.0.0.2遇到的问题
因此若是想实现,就只有用模板列,然后添加HyperLink控件,具体可以这样:.aspx文件中:<asp:datagrid id="DataGrid1" runat="server">
<columns>
<asp:templatecolumn>
<itemtemplate>
<asp:hyperlink id="myLink" runat="server" navigateurl="#">HyperLink</asp:hyperlink>
</itemtemplate>
</asp:templatecolumn>
</columns>
</asp:datagrid>
然后在DataGrid控件的ItemDataBound事件处理程序添加如下代码:private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if((HyperLink)e.Item.FindControl("myLink") != null)
{
((HyperLink)e.Item.FindControl("myLink")).Attributes.Add("ondbclick","alert('hello,you have clicked me double.');");
}
}
((HyperLink)e.Item.FindControl("myLink")).Attributes.Add("ondbclick","alert('hello,you have clicked me double.');");其中的ondbclick 应为 ondblclick
这样用户不好使用呀,我试了一下。
还没有双击完,就已经联接到别的地方了。我是想实现这样的效果,当单击时联接到一个页面,双击时(或其它)联接到另外一个页面怎么搞?
比如:
<a href=# onclick="document.location.href='xxx.aspx';" ondblclick="document.location.href='bbb.aspx';">链接</a>
语法构造必须达到上述效果.
可能楼主的想法不能实现.
<a href=# ondblclick="document.location.href='bbb.aspx';">链接</a>
设置 href 属性 和 onclick的触发事件是一样的,都是单击,只是onclick在 href(也就是跳转页面)之前,同时只有onclick的事件处理程序返回true才继续跳转,用鼠标的都知道,onclick和ondblclick,对于用户体验并不是很好,更不用说在web上了,浏览器的DHTML模型好像对onclick和ondblclick的响应不是很精确,刚才偶也是没考虑倒这一点,
以为楼主只要实现双击就可以了,因此想要精确响应onclick和ondblclick可能不是很现实,
偶能想到的就是利用下拉菜单,用隐藏层实现,见显示菜单层程序加到onclick事件,
方法同上,