您的位置:首页 > 其它

updatePanel中的button的click事件中不能使用response.write()

2010-11-25 13:51 232 查看
updatePanel中的button的click事件中不能使用response.write()等方法的解决办法有两种。

1,把button移到updatePanel外边
2,添加Triggers.

<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btn" runat="server" Text="Create"
CausesValidation="false" onclick="btn_Click"/>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btn" />
</Triggers>
</asp:UpdatePanel>


aspx.cs中,click事件:

protected void btn_Click(object sender, EventArgs e)
{
IList<AA> aaList = ...;
StringBuilder sb = new StringBuilder();
foreach (AA aa in aaList)
{
sb.AppendLine(aa.ss);
}
try
{
string attachment = "attachment; filename=PersonList.txt";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "text/txt";
HttpContext.Current.Response.AddHeader("Pragma", "public");
HttpContext.Current.Response.Write(sb.ToString());
HttpContext.Current.Response.Write(Environment.NewLine);
HttpContext.Current.Response.End();
}
catch (Exception ex)
{
string s = ex.Message;
}
}


这样做的话,如果页面很长,右侧会有一个垂直滚动条。每次点击页面低端的button,都会postBack,滚动条会滚动到最上端。
这个问题的解决办法:
如果是2.0以上的话,只需要在<%@ Page Language="C#" AutoEventWireup="true" %>里添加MaintainScrollPositionOnPostback="true"
其他postBack后想保持滚动条原来的位置,都可以这么解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐