2012-07-28 45 views
0

我有一个生成CSV文件的处理程序,并提供下载,该处理器通过按钮的代码隐藏叫上我defoult.aasp这样的:而到Response.End handler.ashx

Response.Redirect("~/Handler.ashx?startDate="+tbStartDate.Text.Trim()+"&endDate="+tbEndDate.Text+"&isCheck="+chkDuplication.Checked.ToString()); 

现在我有一个上面的代码之后的另一行应该更新我的列表视图,但列表视图没有得到更新,有没有什么办法可以在csv下载后更新列表视图。

谢谢,

+0

而不是Response.Redirect尝试使用Server.Execute – HatSoft 2012-07-28 23:09:40

回答

1

问题是与您的重定向。从Microsoft documentation

任何响应的主体内容,如由原始URL指定的页面显示HTML文本或 回复于文字 忽略。

你有一对夫妇的根据需要发生的处理选项:

  1. 如果您不需要张贴页后退以打开该文件,你可以打开一个新使用您的ashx页面(包括其查询字符串)作为URL的javascript(window.open,目标为_blank)窗口。

  2. 如果您的页面需要回发,您可以在服务器端生成javascript,并在页面首次使用Page.ClientScript.RegisterStartupScript重新加载到浏览器时执行。

我们实际上根据具体要求使用两种方法。一般来说,我们更喜欢第一种方法,即使它意味着在javascript中做了更多的工作,但有时候回发是无法避免的。

0

尝试使用其指定当前页的执行是否应终止endResponse属性,使其false,这样到Response.End以下行被执行。

当你调用Response.Redirect方法在HTTP处理程序,并要重定向到另一个页面而不终止的要求,设置endResponse为false。 Soruce - http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.90).aspx

Response.Redirect("url",false); 
    // code to update your list view