重定向到另一个页面之前的事件

时间:2013-10-11 04:33:13

标签: c# asp.net

我刚刚开发了一个新的GridView MultiFilter控件(CompositeControl),其工作方式如下图所示:

Multi Filter Images

我使用ViewState作为控件的属性,因此它会在回发后保留所有值。我想在重定向之前将控件属性保存到会话中,这样当我的页面再次加载时,我可以将属性加载回我的控件。

有没有人对如何实现这一点有任何建议?

3 个答案:

答案 0 :(得分:2)

您必须在此列表页面中执行以下两项操作:

  • (1)Page load
  • (2)搜索单击

还有一件事(重定向)页面:

  • (3)在返回列表页面时传递一些查询字符串

(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");

我希望这对你有所帮助。我建议用一个文本框和&网格,然后尝试你现在的情况。

如果这可以解决您的问题,请将此答案标记为有用。

答案 1 :(得分:0)

您可以将数据分配给Session,其方式与分配给ViewState的方式非常相似。

这是一个像ViewState一样的键值字典。

例如:

Session["someKey"] = "An arbitrary value";

答案 2 :(得分:0)

如果您可以使用表单提交重定向到其他页面,则可以使用页面的操作属性将表单发布到所需页面。这样,所有控件的值都将在Request [“KEY NAME HERE”]

中提供
<form action="anotherpage.aspx" id="frmData">
<!-- YOUR CONTROLS HERE -->
<input type="submit" value="Submit" />
</fomr>

您也可以使用JS提交表单

$("#frmData").submit();