我有一个显示一组元素的DataList控件。当用户点击列表中的元素时(例如,列表元素的根目录中的任何位置),任何人都可以指出我正确的方向,即如何添加一些客户端功能来提交/执行回发。我已经通过添加一个隐藏的LinkButton并将其连接起来看到一些例子 - 但我还没有让它正常工作。
欢呼声,
- larsw
感谢您的帮助 - 我选择了jQuery方法。你知道我是否可以从lambda函数(对于所选项目)调用隐藏的asp:LinkButton,以便发回帖子?
你的代码示例中有一个小错字(如果有其他人读取此帖子):
我不得不在jQuery选择器中添加一个#; '#<%= DataList1.ClientID%> TD'击>
- larsw
答案 0 :(得分:5)
没有“客户端回发”之类的东西,这是一个错误的陈述。回发意味着提交到服务器(或外部服务器)。
您真正需要的是在页面中添加一些AJAX方法。这可以通过以下几种方式完成:
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'); });
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方法来做到这一点。