2011-09-02 51 views
0

我想修改后面代码中的jquery选项卡的文本标题,并且我还需要获取选定的选项卡号。有任何想法吗?我试图用HtmlGenericControl来引用选项卡,但是非常困难,因为它只是一个“div”,并​​且不会在服务器上运行。我正在使用ASP.NET,C#。 非常感谢你们。Jquery Tab从代码后面修改

回答

1

你说“jQuery”,然后你在同一句话中说“后面的代码”。你需要明白,这些是完全不同的技术,根本不应该彼此直接了解。

“代码隐藏”在服务器上运行,JavaScript运行在客户端的浏览器上。如果您想修改客户端页面上的活动选项卡,那就是JavaScript。如果您想通知您的服务器此选项卡选择更改,则需要通过从您的JavaScript到您在服务器上创建的Web服务的AJAX调用来实现。

简而言之,无法单独使用(邪恶).NET控件。

1

亚当感谢您的回答和您的时间。 我找到了解决我的问题的方法。为了能够更改每个选项卡中的标题文本,从后面的代码中更改。我决定在标签的标题中使用标签。像这样:

<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。 也许这不是解决这个问题的正确方式,但却是我找到的唯一方式。我希望有人也觉得它有用。