代码之家  ›  专栏  ›  技术社区  ›  xChaax

单击按钮后缺少Gridview

  •  0
  • xChaax  · 技术社区  · 7 年前

    在页面加载时,我将加载带有标题的空gridview。我不想离开。

     <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Portfolio.aspx.cs" Inherits="PortFolio.Portfolio" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" ShowHeaderWhenEmpty="true">
                    <Columns>
                        <asp:BoundField DataField="Parent" HeaderText="Parent" HeaderStyle-Width="175px" />
                        <asp:BoundField DataField="Child" HeaderText="Child" HeaderStyle-Width="175px" />
                        <asp:TemplateField>
                        <HeaderTemplate>
                            <asp:CheckBox ID="CheckboxSelectAll" onclick="HeaderCheckBoxClick(this);" runat="server" />
                        </HeaderTemplate>
                        <ItemTemplate>
                                <asp:CheckBox ID="CheckBox1" runat="server" onclick="ChildCheckBoxClick(this);" />
                            </ItemTemplate>
                    </asp:TemplateField>
                    </Columns>
                </asp:GridView>
                <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            </div>
        </form>
    </body>
    </html>
    

    代码隐藏

     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace PortFolio
    {
        public partial class Portfolio : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    GridView1.DataSource = new List<string>();
                    GridView1.DataBind();
                }
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
    
            }
        }
    }
    

    我在用 (!IsPostBack) 因为我不想总是在上面加载数据 Page_Load 因为我的gridview有一个复选框,如果我总是在页面加载时加载,它将丢失状态。我正在考虑使用viewstate,但我不知道如何使用。

    奇怪的是,如果我在本地运行,gridview不会丢失,在发布到https之后,gridview会丢失。请帮忙

    1 回复  |  直到 7 年前
        1
  •  0
  •   PopGlintz    7 年前

    如果已将EnableViewState设置为“false”,则需要在页面级别将其设置为“true”。