【问题标题】:ASP.NET/DataList: Client-side postback by clicking list elementsASP.NET/DataList:通过单击列表元素进行客户端回发
【发布时间】:2010-09-28 16:29:58
【问题描述】:

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

干杯,

--larsw


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

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

--larsw

【问题讨论】:

    标签: asp.net javascript dhtml client-side datalist


    【解决方案1】:

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

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

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

    UpdatePanel 方法

    如果您的页面很重,这并不是最好的主意。如果您想了解更多有关注意事项的信息,请查看我写的博客文章 - http://www.aaron-powell.com/blog.aspx?id=1195

    如果您不了解限制是什么,简单地说 UpdatePanel 可能是一个危险的选择。

    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 方法来做到这一点。

    【讨论】:

      猜你喜欢
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2014-10-24
      • 1970-01-01
      • 2017-01-02
      • 2012-08-17
      • 1970-01-01
      相关资源
      最近更新 更多