Проблемы ASP tabcontainer с clientID

Я хочу скрыть кнопку, когда на вкладке 2. Всегда получаю ошибку.

<script type="text/javascript">

function clientActiveTabChanged(sender, args) {
if ((sender.get_activeTabIndex()) == '2')
{
    alert(sender.get_activeTabIndex());
    var messageElement = document.getElementById('<%= divMessage.clientID%>').value;
    messageElement.style.display = 'block';
}
}
</script>

<body>
<form id="form1" runat="server">
 <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" 
    EnableScriptGlobalization="True"></asp:ToolkitScriptManager>

<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0"  
            Width="100%" BorderStyle="None" OnClientActiveTabChanged="clientActiveTabChanged"> 

     <asp:TabPanel runat="server"  ID="TabPanel1"> 
      <HeaderTemplate>Test1</HeaderTemplate>
      <ContentTemplate></ContentTemplate>
    </asp:TabPanel>

  <asp:TabPanel runat="server"  ID="TabPanel2"> 
      <HeaderTemplate>Test2</HeaderTemplate>
      <ContentTemplate></ContentTemplate>
    </asp:TabPanel>

  <asp:TabPanel runat="server"  ID="TabPanel3"> 
      <HeaderTemplate>Test3</HeaderTemplate>
      <ContentTemplate></ContentTemplate>
    </asp:TabPanel>

 </asp:TabContainer>
 <div runat="server" id="divMessage" style="display: none;">
 <asp:Button ID="Button1" runat="server" Text="Button" />
</div> 


</form>

</body>
</html>

person user2955995    schedule 05.11.2013    source источник
comment
Всегда получаю сообщение об ошибке Мне не хватает ошибки.   -  person Tim Schmelter    schedule 05.11.2013
comment
[HttpException (0x80004005): De Controls-verzameling kan niet word gewijzigd omdat het besturingselement codeblokken bevat (т.е. ‹% ...%›).] System.Web.UI.ControlCollection.Add (дочерний элемент управления) +9600651   -  person user2955995    schedule 05.11.2013


Ответы (1)


Вы используете .value в элементе кнопки. Это возвращает текст кнопки, который является строкой и не имеет стиля. Следующее должно работать. Кроме того, вы упомянули, что хотите скрыть это, но при этом настроили отображение на блокировку. Не должно быть.

var messageElement = document.getElementById('<%= divMessage.clientID%>');
messageElement.style.display = 'block';
person helios456    schedule 05.11.2013
comment
Таким образом: function clientActiveTabChanged (sender, args) {if ((sender.get_activeTabIndex ()) == '2') {alert (sender.get_activeTabIndex ()); var messageElement = document.getElementById ('‹% = divMessage.clientID%›'); messageElement.style.display = 'нет'; }} - person user2955995; 05.11.2013
comment
Ошибка: [HttpException (0x80004005): De Controls-verzameling kan niet word gewijzigd omdat het besturingselement codeblokken bevat (т.е. ‹% ...%›).] System.Web.UI.ControlCollection.Add (Control child) +9600651 - person user2955995; 05.11.2013