Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Gridview分页时保留文本框值_Asp.net_Gridview - Fatal编程技术网

Asp.net Gridview分页时保留文本框值

Asp.net Gridview分页时保留文本框值,asp.net,gridview,Asp.net,Gridview,在页面索引中,我无法在文本框中保留给定值,我尝试了不同的逻辑,但没有给出正确的结果 这是代码 protected void gvViolationCodes_PageIndexChanging(object sender, GridViewPageEventArgs e) { RememberOldValues(); //to rebind the data based on changed page index violation

在页面索引中,我无法在文本框中保留给定值,我尝试了不同的逻辑,但没有给出正确的结果

这是代码

    protected void gvViolationCodes_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        RememberOldValues();
        //to rebind the data based on changed page index
        violationCodePresenter.GetViolationCodesList(Convert.ToInt32(ddlStatus.SelectedValue), Convert.ToInt32(Session["LanguageID"]));
        gvViolationCodes.PageIndex = e.NewPageIndex;
        gvViolationCodes.DataBind();
        RePopulateValues();
    }
存储以前的值的方法如下

     private void RememberOldValues()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("row_index");
        dt.Columns.Add("edited_value");
        foreach (GridViewRow gvr in gvViolationCodes.Rows)
        {
            TextBox tb = (TextBox)gvr.FindControl("txtSeqNo");
            HiddenField hf = (HiddenField)gvr.FindControl("HiddenField1");
            if (tb.Text != hf.Value)
            {
                DataRow dr = dt.NewRow();
                dr["row_index"] = gvr.RowIndex;
                dr["edited_value"] = tb.Text;
                dt.Rows.Add(dr);
            }
        }
        if (dt.Rows.Count == 0 && Session["retain"] == null && Session["page-index"] == null)
        {
            Session["retain"] = null;
            Session["page-index"] = null;
        }
        else if (dt.Rows.Count > 0 && Session["retain"] == null && Session["page-index"] == null)
        {
            Session["retain"] = dt;
            Session["page_index"] = gvViolationCodes.PageIndex;
        }
        else if (Session["retain"] == null && Session["page-index"] == null)
        {
            Session["retain"] = dt;
            Session["page_index"] = gvViolationCodes.PageIndex;
        }
    }

使用
ViewState
object在页面回发过程中保存文本框值,这是由于gridview中的分页而发生的。

能否请您向我们展示您的一个逻辑,我的意思是无论您尝试了什么?这是我的gridview页面索引更改事件