【问题标题】:ASP.NET: Hide All Div Contents - Failed to load viewstate. errorASP.NET:隐藏所有 Div 内容 - 无法加载视图状态。错误
【发布时间】:2013-05-28 16:04:30
【问题描述】:

我正在尝试使用以下代码以编程方式隐藏整个 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>

但我收到以下错误:

加载视图状态失败。正在加载视图状态的控制树必须与在先前请求期间用于保存视图状态的控制树匹配。例如,动态添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。

非常感谢!

【问题讨论】:

  • 有人吗?我想这是微不足道的:s
  • 你为什么不直接使用urinaDiv.Visible=false
  • 很奇怪,在我提出这个问题之前,昨天,我尝试过,因为这是尝试的明显解决方案,Visual Studio 2012 给我一个警告,警告 div 未被识别......但今天我试过了,它有效!非常感谢 :D ___ 将其作为答案发布,我将很高兴接受它! ;)
  • 我很高兴能帮上忙 :)

标签: asp.net html hide visible


【解决方案1】:

当您拥有runat="server" 时,无需进行所有转换

只使用 Visible 属性:

urinaDiv.Visible=false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多