2013-05-28 2 views
0

Я пытаюсь скрыть весь DIV программно, используя следующий код:ASP.NET: Скрыть все содержимое Div - Не удалось загрузить viewstate. Ошибка

System.Web.UI.Control divMask = (System.Web.UI.Control)this.Page.FindControl("urinaDiv"); 

System.Web.UI.HtmlControls.HtmlGenericControl htmlCtrl = (System.Web.UI.HtmlControls.HtmlGenericControl)divMask;    
          htmlCtrl.Attributes["Visible"] = "false"; 

А вот ДИВ:

<div id="urinaDiv" sytle="width: 600px" runat="server"> 
           <asp:Label ID="relatorioUrinaLabel" runat="server" Text="Relatórios Urina"></asp:Label> 


           <br /> 
           <br /> 



            <asp:GridView ID="urinasGridview" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource3"> 
             <Columns> 
              <asp:BoundField DataField="idUtente" HeaderText="IDUten" SortExpression="idUtente" /> 
              <asp:BoundField DataField="nome" HeaderText="Nome" SortExpression="nome" /> 
              <asp:BoundField DataField="apelido" HeaderText="Apelido" SortExpression="apelido" /> 
              <asp:BoundField DataField="data" HeaderText="Data" SortExpression="data" /> 
              <asp:BoundField DataField="idUtenteMarcacao" HeaderText="idUtenteMarcacao" SortExpression="idUtenteMarcacao" visible="false"/> 
              <asp:BoundField DataField="densidade" HeaderText="Densidade" SortExpression="densidade" /> 
              <asp:BoundField DataField="ph" HeaderText="pH" SortExpression="ph" /> 
              <asp:BoundField DataField="glicose" HeaderText="Glicose" SortExpression="glicose" /> 
              <asp:BoundField DataField="proteinas" HeaderText="Proteínas" SortExpression="proteinas" /> 
              <asp:BoundField DataField="limitacoes" HeaderText="Limitcações" SortExpression="limitacoes" /> 
              <asp:BoundField DataField="observacoes" HeaderText="Obs." SortExpression="observacoes" /> 
             </Columns> 
            </asp:GridView> 



           <asp:ObjectDataSource ID="ObjectDataSource3" runat="server" SelectMethod="getRelatoriosUrina" 
            TypeName="BusinessLogicLayer.Lab_Manager" ></asp:ObjectDataSource> 

           <asp:ObjectDataSource ID="ObjectDataSource6" runat="server" SelectMethod="getRelatoriosUrinaUtente" 
            TypeName="BusinessLogicLayer.Lab_Manager" OnSelecting="urinaSelecting" ><SelectParameters> 
               <asp:Parameter Name="idUtente" /></SelectParameters></asp:ObjectDataSource> 
           <br /> 
           <br /> 
            </div> 

Но я получаю следующее сообщение об ошибке:

Failed для загрузки viewstate. Дерево управления, в которое загружается viewstate, должно соответствовать дереву управления, который использовался для сохранения состояния представления во время предыдущего запроса. Например, при добавлении элементов управления динамически элементы управления, добавленные во время обратной связи, должны соответствовать типу и положению элементов управления, добавленных во время первоначального запроса.

Спасибо заблаговременно!

+0

Anyone? Я думаю, это тривиально: s – TiagoM

+1

почему бы вам просто не использовать 'urinaDiv.Visible = false'? –

+0

Странно, прежде чем я сделал этот вопрос, вчера, я попробовал это, потому что это было очевидное решение попробовать, и Visual Studio 2012 давала мне предупреждение о том, что div не признан ... Но сегодня я пробовал, и он работает! Спасибо alot mate: D ___ Опубликовать его в качестве ответа Я буду рад принять его! ;) – TiagoM

ответ

1

Там нет необходимости делать все, что отливку когда у вас есть runat="server"

Используйте только Visible свойство:

urinaDiv.Visible=false;

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