【发布时间】:2011-02-06 09:11:36
【问题描述】:
我想为我的网站添加选项卡,我知道我可以使用 AJAX 工具包中的选项卡控件,或者我可以选择使用 JQuery UI 选项卡。每个选项卡都需要加载一个单独的 asp.net 页面,我需要自定义选项卡以使其看起来更流畅。
对我可以使用什么方法有什么想法吗?
【问题讨论】:
标签: .net asp.net javascript jquery
我想为我的网站添加选项卡,我知道我可以使用 AJAX 工具包中的选项卡控件,或者我可以选择使用 JQuery UI 选项卡。每个选项卡都需要加载一个单独的 asp.net 页面,我需要自定义选项卡以使其看起来更流畅。
对我可以使用什么方法有什么想法吗?
【问题讨论】:
标签: .net asp.net javascript jquery
【讨论】:
JQuery 选项卡旨在使纯客户端和 AJAX 选项卡尽可能简单。您的要求是让每个选项卡转到不同的网页。在这种情况下,这可能是错误的方法。
由于每个选项卡都将是不同的 ASP.NET 页面,因此您需要在服务器端易于配置的内容,以便 1) 可以轻松地重用选项卡控件; 2)很容易指定从服务器端“打开”哪个选项卡。我怀疑 ASP.NET AJAX 的版本在这两个方面都会更容易。
再说一次,我自己的经验是RadControls' RadTabStrip。如果你有几块钱可以花,你可以从这些人那里得到一套非常棒的可重复使用的小部件,这些小部件非常可定制。
【讨论】:
您可以在此处查看 AjaxControlToolkit 选项卡的演示:
如果您查看底部,您将看到一个关于主题化的部分。您可以完全更改布局以满足您的需求。
至于将单独的页面加载到每个选项卡中,您需要澄清您的意思,因为这里有几个选项:
如果让搜索引擎能够查看这些标签的内容并将其编入索引,那么您还应该指出这一点,因为并非所有上述解决方案都对 Google 友好(或盲人用户可以访问)。
【讨论】:
我的问题是,我的标签页的内容是单独的 aspx 页面,我应该使用 ajax 工具包中的 JQuery 选项卡还是选项卡控件
鉴于此,AjaxControltoolkit 并不是一个真正的选择。 AjaxControlToolkit 选项卡是控件,这意味着它们需要存在于服务器端表单中。即使您可以让它们加载另一个 ASPX 页面的内容,最有可能的结果是嵌套的 html 表单,这并不真正受支持。
如果您使用 jQuery UI 选项卡路线,您很可能会遇到不同的问题: page redirects on postback。您可以尝试使用jQuery Form(类似these lines)解决该问题,但您可能很难解决使用__doPostBack 方法提交表单的控件。如果您的 ASPX 页面依赖回发,那么您最好的选择可能是 host an iframe for each tab 并以这种方式加载您的 aspx 页面。这将使您的页面在回发时仍能正常运行。
如果可以的话,ASP.NET MVC 会更好地适应您尝试实现的设置。
【讨论】:
theForm 的变量,它指的是它认为页面上的一种形式。当您使用 ajax 加载另一个表单时,该变量会被最后一个要加载的表单覆盖。因此,所有 JS 触发的提交(例如来自链接按钮)都将转到加载的最后一页。您可能可以编写一个处理程序来更改该变量的值,因为选项卡更改,以便提交转到正确的页面。