【发布时间】:2011-11-09 03:00:31
【问题描述】:
我想在后面的代码中修改jquery标签的文本标题,我还需要获取选中的标签号。有任何想法吗?我试图使用 HtmlGenericControl 来引用选项卡,但非常困难,因为它只是一个“div”并且不在服务器上运行。我正在使用 ASP.NET,C#。 非常感谢你们。
【问题讨论】:
标签: jquery tabs code-behind
我想在后面的代码中修改jquery标签的文本标题,我还需要获取选中的标签号。有任何想法吗?我试图使用 HtmlGenericControl 来引用选项卡,但非常困难,因为它只是一个“div”并且不在服务器上运行。我正在使用 ASP.NET,C#。 非常感谢你们。
【问题讨论】:
标签: jquery tabs code-behind
亚当感谢您的回答和您的时间。 我找到了解决我的问题的方法。为了能够从后面的代码更改每个选项卡中的标题文本。我决定在选项卡的标题中使用标签。像这样:
<div id="TabContainer">
<ul>
<li><a href="#tabCall" onclick= "TabChanged(0)"><asp:Label ID="LblCall" runat="server" Text="Call" ></asp:Label></a></li>
<li><a href="#tabEvents" onclick= "TabChanged(1)"><asp:Label ID="LblEvents" runat="server" Text="Events"></asp:Label></a></li>
<li><a href="#tabContract" onclick= "TabChanged(2)"><asp:Label ID="LblContract" runat="server" Text="Contract"></asp:Label></a></li>
<li><a href="#tabAtt" onclick= "TabChanged(3)"><asp:Label ID="LblAtt" runat="server" Text="Attachments"></asp:Label></a></li>
<li><a href="#tabHistory" onclick= "TabChanged(4)"><asp:Label ID="LblHistory" runat="server" Text="History"></asp:Label></a></li>
</ul>
在服务器端运行标签很容易更改标题文本。 现在,对于下一个问题:“如何在后面的代码中获取标签索引”,我在阅读的100页之间找到了一段代码,非常有帮助。我们需要一个隐藏字段来实现它:
<script type="text/javascript">
$(document).ready(function () {
var currTab = $("#<%= currentTabIndex.ClientID %>").val()
$("#TabContainer").tabs({ selected: currTab });
});
//--- save in variable the tabindex, needed for the code behind
function TabChanged(tabNum) {
$("#<%= currentTabIndex.ClientID %>").val(tabNum);
}
</script>
<asp:HiddenField runat="server" ID="currentTabIndex" />
此代码还在回发后将焦点设置在正确的选项卡中。后面代码中有tabindex的变量调用currentTabIndex.Value。 也许这不是解决这个问题的正确形式,但这是我发现的唯一一种。我希望有人也觉得它有用。
【讨论】:
你说“jQuery”,然后在同一个句子中说“code behind”。您需要了解,这些是完全不同的技术,根本不应该直接了解彼此。
“代码隐藏”在服务器上运行,JavaScript 在客户端浏览器上运行。如果您想修改客户端页面上的活动选项卡,那就是 JavaScript。如果您想通知您的服务器此选项卡选择更改,则需要通过从您的 JavaScript 到您在服务器上创建的 Web 服务的 AJAX 调用来实现。
简而言之,仅靠您的(邪恶的).NET 控件无法做到这一点。
【讨论】: