【问题标题】:ViewState in GridView ASP.NetGridView ASP.Net 中的 ViewState
【发布时间】:2017-02-25 02:21:30
【问题描述】:

我有一个在 aspx 代码中连接到数据源的 gridview。选定的 gridview 行隐藏在 clcik on 按钮上。我想永久隐藏该行,即使用户注销并且不应显示隐藏行中的日志。我试过使用 ViewState 但它不起作用。任何人都知道如何做到这一点。

我的网格视图:

edit Select Approve data 1 data 2 data 3

当用户单击选择和批准按钮时,该行被隐藏。我希望调用除单击的行之外的所有行,单击的行根本不应该显示。我做了一些研究,发现 ViewState 是最好的,但不知道如何实现它。

我的背后代码:

SqlConnection con = new SqlConnection("Data Source=User-PC\\User;Initial Catalog=Subject Registration System;Integrated Security=True");

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["username"] != null)
        {
            Label1.Text = Session["username"].ToString();

        }

        con.Open();


        SqlCommand cmd = new SqlCommand("SELECT FullName FROM [Programme Leader] WHERE Username= '" + Label1.Text + "'", con);
        SqlDataReader reader = cmd.ExecuteReader();

        reader.Read();
        Label1.Text = reader["FullName"].ToString();
        reader.Close();

        con.Close();



        if (!Page.IsPostBack)
        {
            string gd;
            gd = (string)ViewState["Gridview"];
        }



        Panel2.Visible=true;
        Panel3.Visible = false;
    }

    protected void DDL1_SelectedIndexChanged(object sender, EventArgs e)
    {

        Panel2.Visible = true;

    }



    protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
    {

        Panel2.Visible = true;
        GridView2.DataBind();
    }

    protected void GridView2_RowUpdated(object sender, GridViewUpdatedEventArgs e)
    {

        Panel2.Visible = true;
        GridView2.DataBind();

    }



    protected void Button1_Click(object sender, EventArgs e)
    {

          GridView1.SelectedRow.Visible = false;

        ViewState["gridview"]=GridView1;



    }


    protected void Button2_Click(object sender, EventArgs e)
    {
    Response.Redirect("~/Programme Leader Front Page.aspx");
    }



 }



}

谢谢

【问题讨论】:

  • 您必须将该用户的隐藏行存储在某个永久位置,例如在您的数据库中。

标签: c# asp.net gridview viewstate


【解决方案1】:

如果隐藏的行与特定用户相关联,您可以将其保存到数据库中。因此,新表将包含来自 gridview 的行的主键和用户 ID。为 gridview 执行选择时,只需排除存储在新表中的用户的行。

视图状态是 ASP.NET 页面框架用来在往返之间保存页面和控件值的方法。在您的情况下,视图状态将不起作用,因为您希望在用户注销时保留信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2011-04-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2010-09-25
    相关资源
    最近更新 更多