1

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

干杯,

--larsw


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

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

--larsw

4

1 回答 1

5

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

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

  • 更新面板
  • 纯 MS AJAX
  • MS AJAX 和 jQuery 的混合(或其他 JavaScript 库,我建议使用 jQuery,因为它在 VS 2008 中得到支持)

更新面板方法

如果您有一个非常沉重的页面,这并不是最好的主意。如果您想了解更多有关注意事项的信息,请查看我写的博客文章 - 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'); });

David Ward 有一些关于将 jQuery 与 ASP.NET/ASP.NET AJAX 结合使用的好帖子 - 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方法来做到这一点。

于 2008-12-29T11:12:11.177 回答