我的项目是ASP web表单,我最近希望使用json。net替换我在gridview中使用的viewstate,如下所示:
[Serializable]
public class MyDataForm
{
public string LocationCode { get; set; }
public string ProjectNo { get; set; }
public string PatientName { get; set; }
public string PersonID { get; set; }
public string PdfURL { get; set; }
public string Memos { get; set; }
}
public List<MyDataForm> MyDataList { set { ViewState["MyDataList"] = value; } get { return ViewState["MyDataList"] as List<MyDataForm>; } }
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.EditIndex = -1;
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = MyDataList;
GridView1.DataBind();
}
我希望将数据存储在HiddenField中,然后在每次回发时通过此捕获数据:
JsonConvert.DeserializeObject<MyDataForm>( $("#hiddenFieldID").val())
主要问题是在ASP页面生命周期中何时替换viewstate。
在Asp页面生命周期的哪个阶段,如page\u init,gridview将调用databind(),如果我可以将Json反序列化的数据放入datasource,
然后我认为它可以完全取代viewstate,任何人都知道如何做到这一点,非常感谢。