ASP.NET/DataList:通过单击列表元素进行客户端回发

lar*_*rsw 1 javascript asp.net dhtml datalist client-side

我有一个显示一组元素的DataList控件.当用户点击列表中的元素时(例如,列表元素的根目录中的任何位置),任何人都可以指出我正确的方向,即如何添加一些客户端功能来提交/执行回发.我已经看到一些例子,添加一个隐藏的LinkBut​​ton并连接它 - 但我还没有让它正常工作.

干杯,

--larsw


感谢您的帮助 - 我选择了jQuery方法.你知道我是否可以从lambda函数(对于所选项目)调用隐藏的asp:LinkBut​​ton,以便发回帖子?

在您的代码示例中有一个小错误(如果有其他人读取此线程):我必须在jQuery选择器中添加一个#; ' # <%= DataList1.ClientID%> td'

--larsw

Aar*_*ell 5

没有"客户端回发"之类的东西,这是一个错误的陈述.回发意味着提交到服务器(或外部服务器).

您真正需要的是在页面中添加一些AJAX方法.这可以通过以下几种方式完成:

  • 的UpdatePanel
  • 纯MS AJAX
  • MS AJAX和jQuery(或其他JavaScript库的混合,我建议jQuery由于它在VS 2008中的支持)

UpdatePanel方法

如果你有一个非常沉重的页面,这不是最好的主意.看看我写的博客文章,如果你想获得更多关于要注意什么的信息 - http://www.aaron-powell.com/blog.aspx?id=1195.

如果你不明白限制是什么,简单地把UpdatePanels放在一个危险的选择.

MS AJAX和/或jQuery

这是我对你应该做什么的建议.使用jQuery定位DOM中要放置客户端事件的所有元素,例如:

$('#<%= DataList1.ClientID %> span').click(function () { alert('You want something here'); });
Run Code Online (Sandbox Code Playgroud)

David Ward在使用ASP.NET 和ASP.NET AJAX的jQuery方面有一些好的帖子 - http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/ http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

注意:如果您要使用AJAX实现,您将无法访问页面的控件集合,那么它们都将是静态方法交互,因此请注意,如果您要更新页面的多个部分,则需要编写JavaScript这样做的方法.