[英]Event before redirect to another page
我剛剛開發了一個新的GridView MultiFilter控件(CompositeControl),其工作原理如下圖所示:
我將ViewState用於控件的屬性,以便在回發后保留所有值。 我想在重定向之前將控件屬性保存到會話中,以便在頁面再次加載時可以將屬性加載回控件。
有沒有人對如何實現這一目標有任何建議?
您必須在此列表頁面中做兩件事:
和1件事詳細(重定向)頁面:
(1)在頁面加載過程中,決定加載普通或搜索(從詳細頁面返回)數據
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Request.QueryString["back"] != null)
bindDataFirst();
// same data load logic as present
else
bindDataForBack();
// you come back from detail page hence bind search & grid data
}
private void bindDataForBack()
{
strName = Session["SearchName"] == null ? "" : Session["SearchName"].ToString();
// check session search conditions & data and bind
//also bind grid by respective search parameters & search options (top side)
(2)搜索點擊將搜索數據存儲到會話中
public void btnSearch_Click(object sender, System.EventArgs e)
{
Session["SearchName"] = strName;// store search data into session variables
//bind grid by respective search parameters
(3)在重定向(詳細)頁面中設置后退按鈕,例如:
public void btnBack_Click(object sender, System.EventArgs e)
{
Response.Redirect("ListPage.aspx?back=1");
希望對您有幫助。 我建議使用一個文本框和網格來實現此目的,然后嘗試當前的情況。
如果可以解決您的問題,請將此答案標記為有用。
您幾乎可以將數據分配給Session,就像分配給ViewState一樣。
就像ViewState一樣,它是鍵值字典。
例如:
Session["someKey"] = "An arbitrary value";
如果可以使用表單提交重定向到另一個頁面,則可以使用頁面的action屬性將表單發布到所需頁面。 這樣,所有控件的值都將在Request [“ KEY NAME HERE”]中可用
<form action="anotherpage.aspx" id="frmData">
<!-- YOUR CONTROLS HERE -->
<input type="submit" value="Submit" />
</fomr>
您也可以使用JS提交表單
$("#frmData").submit();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.