为什么我没有在使用asp.net和jQuery UI的简单演示中获得任何标签?

时间:2010-11-06 21:06:50

标签: asp.net jquery jquery-ui jquery-ui-tabs

我不能让我的标签工作,不管我做什么。演示非常简单直接,但我必须错过一些东西。 应用CSS并调用$("#pnlTabs").tabs();函数但没有任何反应。

请帮助我,这个JS让我疯狂。

编辑:

这是zip文件的链接,其中包含完整的解决方案http://dl.dropbox.com/u/12791555/HelpDeskControls.zip

EDIT2:

还有一个问题。当您单击“服务”或“事件”选项卡时,是否可以调用代码隐藏功能?假设当我点击“事件”选项卡时,当我点击“加载”按钮

时,会调用相同的函数

1 个答案:

答案 0 :(得分:2)

我怀疑ID错误可能是这里的原因。

将脚本更改为此,然后重试

$(function () {
    $('#<%=pnlTabs.ClientID %>').tabs();
});

由于HTML规范要求元素ID在DOM中是唯一的,因此ASP.NET框架会尝试通过重写您分配给页面中服务器控件的ID来避免出现重复ID的可能性。如果你考虑一下,这在某种程度上是有意义的,例如使用gridview之类的控件,你有一个服务器控件,你想为数据源中的每个项重复一个ID,你不会想要的ID也会重复,因为这会导致HTML无效。

INamingContainer接口修饰的任何控件都会创建一个新的ID命名空间,这将导致客户端的元素ID损坏。*使用上面给出的标记,我们可以获得将在其中生成的ID发送到客户端的响应输出到页面进入jQuery函数调用。

* ASP.NET 4可以设置为不会破坏ID,这是你自己的危险!

修改

我已经查看了您的演示代码,并且所有内容都按预期工作 - 制表符事件处理程序正确绑定到列表元素,单击时将正确的CSS类应用于div元素以显示相应的元素分别隐藏其他人。

您似乎缺少设置选项卡样式所需的大量CSS,而且是驱动某些选项卡行为的CSS类。如果您放入链接到google api上托管的jQuery UI主题CSS的链接,那么所有内容似乎都能正常工作。我在CSS样式表链接

之后添加了以下内容
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>

所有似乎都按预期工作。

另一方面,您可能有兴趣查看ASP.NET MVC - 我个人认为使用它大约一年后,如果有选择,我就不会再回到Web表单了。如果您对HTML,CSS和JavaScript感到满意,您可能会发现它比Web表单更直观:)