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页面索引更改事件