HyperLink如何在aspx文件中的ListView里面 绑定点击事件

shfd2011 2016-10-19 07:37:13
HyperLink没有点击事件,
如果在aspx.vb中,可以给它绑[定事件:
例:HyperLink0.Attributes.Add("onclick", "document.all.LinkButton0.click()")


但HyperLink被加在ListView的<ItemTemplate>中,
它是在aspx文件。不知 "document.all.LinkButton0.click()" 在aspx中怎么写
<asp:HyperLink ID="HyperLink0" runat="server"
Text='标题标题'
NavigateUrl='链接链接'
onclick='document.all.LinkButton0.click()'
/>
onclick='document.all.LinkButton0.click()' 直接和aspx.vb相同,它不执行,

换成 onclick=alert('aaaaaaaa') 它会执行,所以在这一定能绑定事件,
但是就是怎么把"document.all.LinkButton0.click()") 写法写对。
...全文
555 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2016-10-21
  • 打赏
  • 举报
回复
引用 18 楼 shfd2011 的回复:
估计只能后台绑定,但出了个超奇怪问题: 'Dim Str_ls As String = "document.all.LinkButton0.Click()" '我用这句不能绑定 Dim Str_ls As String = "document.all.LinkButton0.click()" '我用这句绑定 DirectCast(FindControl("HyperLink" + int.ToString), HyperLink).Attributes.Add("onclick", Str_ls) 但好像完全相同吧? 我是绑了半天不能动,就又再手动打一次,却可以 为什么??????
给你的链接,示例都有了,你还没搞定,我也没办法了
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
你当然不能跑到浏览器上去让浏览器去渲染 <asp:HyperLink ID="HyperLink0" runat="server" ....... 这种代码,而且这也并不是什么可执行的 javascript 代码,而是一种 XML/HTML 风格的代码。 你应该在学习asp.net 之前,先学 html/css/javascript 知识,先使用前端工具能够开发网站,然后再学习 asp.net。 鉴于你没有前端知识,我只是告诉你一点(将来等你学了前端之后可以跟这里的知识联系上),asp.net 后台服务器控件输出的 html 元素的 id 并不是其 ID 属性,而是其 ClientID 属性。因此要知道前端如何访问特定的 ListView,需要生成脚本,并且脚本中写的要 getElementById 的 key 是 你的ListView 控件的 ClientID 输出的,并不是其 ID。
你好,就是说ListView1中ItemTemplate里面如果有包含像 linkbutton的控件,那该控件点击事件在哪设置?
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
你当然不能跑到浏览器上去让浏览器去渲染 <asp:HyperLink ID="HyperLink0" runat="server" ....... 这种代码,而且这也并不是什么可执行的 javascript 代码,而是一种 XML/HTML 风格的代码。 你应该在学习asp.net 之前,先学 html/css/javascript 知识,先使用前端工具能够开发网站,然后再学习 asp.net。 鉴于你没有前端知识,我只是告诉你一点(将来等你学了前端之后可以跟这里的知识联系上),asp.net 后台服务器控件输出的 html 元素的 id 并不是其 ID 属性,而是其 ClientID 属性。因此要知道前端如何访问特定的 ListView,需要生成脚本,并且脚本中写的要 getElementById 的 key 是 你的ListView 控件的 ClientID 输出的,并不是其 ID。
你好,那LIstView中如果有Linkbutton这种,那Linkbutton它本身的click事件要怎么定义?
  • 打赏
  • 举报
回复
你当然不能跑到浏览器上去让浏览器去渲染 <asp:HyperLink ID="HyperLink0" runat="server" ....... 这种代码,而且这也并不是什么可执行的 javascript 代码,而是一种 XML/HTML 风格的代码。 你应该在学习asp.net 之前,先学 html/css/javascript 知识,先使用前端工具能够开发网站,然后再学习 asp.net。 鉴于你没有前端知识,我只是告诉你一点(将来等你学了前端之后可以跟这里的知识联系上),asp.net 后台服务器控件输出的 html 元素的 id 并不是其 ID 属性,而是其 ClientID 属性。因此要知道前端如何访问特定的 ListView,需要生成脚本,并且脚本中写的要 getElementById 的 key 是 你的ListView 控件的 ClientID 输出的,并不是其 ID。
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 1 楼 FoxDave 的回复:
可以后台动态绑定
你好,如果在后台aspx.vb中,可以在ListView数据绑定时它绑[定事件 但这样要写一段代码。 所以想知道怎么在前台一句话绑定事件 另外如果不用HyperLink,直接用Linkbutton的话,那它自身就有事件不用绑定, 那怎么设定和关联这个事件
Justin-Liu 2016-10-20
  • 打赏
  • 举报
回复
可以后台动态绑定
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
估计只能后台绑定,但出了个超奇怪问题: 'Dim Str_ls As String = "document.all.LinkButton0.Click()" '我用这句不能绑定 Dim Str_ls As String = "document.all.LinkButton0.click()" '我用这句绑定 DirectCast(FindControl("HyperLink" + int.ToString), HyperLink).Attributes.Add("onclick", Str_ls) 但好像完全相同吧? 我是绑了半天不能动,就又再手动打一次,却可以 为什么??????
EnForGrass 2016-10-20
  • 打赏
  • 举报
回复
看看MSDN的例子吧(虽然是repeater控件),应该也可以实现你要的功能 https://msdn.microsoft.com/en-us/library/31hxzsdw(v=vs.110).aspx
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 15 楼 andywangguanxi 的回复:
HyperLink换成LinkButton,执行js代码用onclientclick。onclick是服务器端事件
你好,怎么加进去 <ItemTemplate> <asp:LinkButton ID="LinkButton0" runat="server"> <%#"<a href=" + Eval("图片名") + "> <img src=" + Eval("图片链接") + " width=100 height=100 border=0 />"%> </asp:LinkButton> </ItemTemplate>
EdsionWang 2016-10-20
  • 打赏
  • 举报
回复
HyperLink换成LinkButton,执行js代码用onclientclick。onclick是服务器端事件
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 12 楼 hm8030 的回复:
aspnet 的服务器控件绑定在gridview中,产生的clientid 是随着行变化而变化的,即显示在页面的每个控件的clientid 都是唯一的不重复的。
很奇怪,控件ID在本地和网上名称竟然不同。 比如我定义成HyperLink2_0 它在网上是ListView1_ctrl0_HyperLink2_0 它本地是ListView1_ctrl0_ctl00_HyperLink2
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 11 楼 hanjun0612 的回复:
在设计界面 打开 ItemTemplate 然后双击HyperLink
你好,双击中出现 ListView1_SelectedIndexChanged事件
hm8030 2016-10-20
  • 打赏
  • 举报
回复
aspnet 的服务器控件绑定在gridview中,产生的clientid 是随着行变化而变化的,即显示在页面的每个控件的clientid 都是唯一的不重复的。
正怒月神 版主 2016-10-20
  • 打赏
  • 举报
回复
在设计界面 打开 ItemTemplate 然后双击HyperLink
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 9 楼 Chinajiyong 的回复:
[quote=引用 8 楼 shfd2011 的回复:] [quote=引用 6 楼 Chinajiyong 的回复:] 你要用FindControl方法先找到这个linkbutton的控件, http://看看这帖子http://bbs.csdn.net/topics/350226366
你好谢谢,但这方法不太适用。 因为在模板中定义HyperLink0, 但运行每条记录最有HyperLink0, 名字都不同,比如ListView1_ctrl0_HyperLink2_0,ListView1_ctrl1_HyperLink2_2 这样后台绑定要写青海省代码,所以想能否直接用在前台js把它绑定调用后台。[/quote] 你这种写法(服务器控件,runat="server")只有通过FindControl去实现,否则你就直接在ItemTemplate写a标签,再用js去处理(肯定也要先找到a标签)[/quote] 你好,其实ItemTemplate <asp:HyperLink ID="HyperLink0" runat="server" Text='标题标题' NavigateUrl='链接链接' onclick=alert('aaaaaaaa') /> 上面那代能执行, 那就是js代码能运行,那能否用js代码调用aspx.vb中的自定义函数?
EnForGrass 2016-10-20
  • 打赏
  • 举报
回复
引用 8 楼 shfd2011 的回复:
[quote=引用 6 楼 Chinajiyong 的回复:] 你要用FindControl方法先找到这个linkbutton的控件, http://看看这帖子http://bbs.csdn.net/topics/350226366
你好谢谢,但这方法不太适用。 因为在模板中定义HyperLink0, 但运行每条记录最有HyperLink0, 名字都不同,比如ListView1_ctrl0_HyperLink2_0,ListView1_ctrl1_HyperLink2_2 这样后台绑定要写青海省代码,所以想能否直接用在前台js把它绑定调用后台。[/quote] 你这种写法(服务器控件,runat="server")只有通过FindControl去实现,否则你就直接在ItemTemplate写a标签,再用js去处理(肯定也要先找到a标签)
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 6 楼 Chinajiyong 的回复:
你要用FindControl方法先找到这个linkbutton的控件, http://看看这帖子http://bbs.csdn.net/topics/350226366
你好谢谢,但这方法不太适用。 因为在模板中定义HyperLink0, 但运行每条记录最有HyperLink0, 名字都不同,比如ListView1_ctrl0_HyperLink2_0,ListView1_ctrl1_HyperLink2_2 这样后台绑定要写青海省代码,所以想能否直接用在前台js把它绑定调用后台。
shfd2011 2016-10-20
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
你当然不能跑到浏览器上去让浏览器去渲染 <asp:HyperLink ID="HyperLink0" runat="server" ....... 这种代码,而且这也并不是什么可执行的 javascript 代码,而是一种 XML/HTML 风格的代码。 你应该在学习asp.net 之前,先学 html/css/javascript 知识,先使用前端工具能够开发网站,然后再学习 asp.net。 鉴于你没有前端知识,我只是告诉你一点(将来等你学了前端之后可以跟这里的知识联系上),asp.net 后台服务器控件输出的 html 元素的 id 并不是其 ID 属性,而是其 ClientID 属性。因此要知道前端如何访问特定的 ListView,需要生成脚本,并且脚本中写的要 getElementById 的 key 是 你的ListView 控件的 ClientID 输出的,并不是其 ID。
你好,其它我想说 <asp:HyperLink ID="HyperLink0" runat="server" Text='标题标题' NavigateUrl='链接链接' onclick=alert('aaaaaaaa') /> 上面那代能执行, 那就是js代码能运行,那能否用js代码调用aspx.vb中的自定义函数?
EnForGrass 2016-10-20
  • 打赏
  • 举报
回复
你要用FindControl方法先找到这个linkbutton的控件, http://看看这帖子http://bbs.csdn.net/topics/350226366

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧