2013-05-28 35 views
0

我試圖以編程方式隱藏整個DIV,使用下面的代碼:ASP.NET:隱藏所有Div內容 - 無法加載視圖狀態。錯誤

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:

<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> 

,但我得到了以下錯誤:

失敗加載視圖狀態。要將視圖狀態加載到其中的控制樹必須與前一個請求期間用於保存視圖狀態的控制樹相匹配。例如,當動態添加控件時,在回發期間添加的控件必須與初始請求期間添加的控件的類型和位置相匹配。

非常感謝!

+0

有人嗎?我想這是微不足道的:s – TiagoM

+1

你爲什麼不使用'urinaDiv.Visible = false'? –

+0

奇怪的是,在我提出這個問題之前,昨天我嘗試了這一點,因爲這是顯而易見的解決方案,Visual Studio 2012給了我一個關於div未被識別的警告......但是今天我嘗試了它並且工作正常!非常感謝大家:D ___將它作爲答案發布我很樂意接受它! ;) – TiagoM

回答

1

沒有必要去做所有的鑄造,當你有runat="server"

只使用Visible屬性:

urinaDiv.Visible=false;