2013-04-08 3 views
0

У меня есть страница ASP.NET, содержащая кнопку, AjaxToolKit TabControl и две TabPanels. Я бы хотел, чтобы кнопка была включена, когда табуляция # 0 выбрана и отключена, если какая-либо другая вкладка выбрана/активна.Видимость кнопки управления в зависимости от активной вкладки в AjaxToolKit: TabControl

Однако, я даже не заставляю код правильно компилироваться.

Моя попытка

<asp:Content ID="Foobar" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server"> 
<script type="text/javascript"> 
    function CanSave(sender,e)) { 
     var tabContainer = window.$get('<%=tcMain.ClientID%>'); 
     if (tabContainer != undefined && tabControl != null) { 
      tabContainer = tabControl.control; 
      document.getElementById('<%=ButtonSave.ClientID %>').disabled = (tabContainer.ActiveTabIndex == 0); 
     } 
    } 
</script> 
    <asp:Button ID="ButtonSave" runat="server" Enabled="false" OnClick="ButtonSave_Click" Text="Save" Width="8.8em" /> 
    <ajaxToolkit:TabContainer runat="server" ID="tcMain" OnActiveTabChanged="CanSave"> 
     <ajaxToolkit:TabPanel ID="tpOne" runat="server" HeaderText="One"> 
     <ContentTemplate> 
     ...      
     </ContentTemplate> 
     <ajaxToolkit:TabPanel ID="tpTwo" runat="server" HeaderText="Two"> 
     <ContentTemplate> 
     ...      
     </ContentTemplate> 
    </ajaxToolkit:TabContainer> 


</asp:Content> 

создания сценариев материал был все собраны из Интернета. Я должен признать, что я ничего не знаю о jscript, ASP.NET и т. Д., Но мне нужно найти способ переключить видимость этой кнопки ButtonSave.

Пожалуйста, дайте мне подсказки в правильном направлении. Заранее спасибо.

ответ

0

Это мое решение. Хитрость заключается в использовании события OnClientActiveTabChanged. Совершенно очевидно, не так ли?

<asp:Content ID="Foobar" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server"> 
<script type="text/javascript"> 
    function CanSave(sender,e)) { 
     var tabContainer = window.$get('<%=tcMain.ClientID%>'); 
     if (tabContainer != undefined && tabControl != null) { 
      tabContainer = tabControl.control; 
      document.getElementById('<%=ButtonSave.ClientID %>').disabled = (tabContainer.get_activeTabIndex() == 0); 
     } 
    } 
</script> 
    <asp:Button ID="ButtonSave" runat="server" Enabled="false" ... /> 
    <ajaxToolkit:TabContainer 
     runat="server" 
     ID="tcMain" 
     OnClientActiveTabChanged="CanSave"> 

...

1

OnActiveTabChanged не является событием на стороне клиента. Вам нужно будет написать код в своем коде за файлом, чтобы это работало. Обратите внимание, что это событие вызовет PostBack и обновит вашу страницу при изменении вкладки.

protected void tbcRatingMaster_ActiveTabChanged(object sender, EventArgs e) 
{ 
if (tbcRatingMaster.ActiveTabIndex == 0) //First tab 
{ 
    ButtonSave.Enabled = false; 
} 
} 
+0

Привет. Я пробовал это, но событие не уволено. – alzaimar

+0

Решил! Атрибут 'AutoPostBack =" True "' отсутствовал. Теперь это работает. Благодарю. Тем не менее, поиск решения на стороне клиента. – alzaimar

+0

Используйте вкладки jQuery, если вы хотите только контролировать клиентскую сторону. Отключение кнопки довольно просто. Он обеспечивает множество событий на стороне клиента. – nunespascal

 Смежные вопросы

  • Нет связанных вопросов^_^