在我的页面上,我有几个文本框,AJAX tabpanel和gridview。
在Page_Load
事件中,填写了文本框; gridview已填充等等。
我的gridview有一个按钮:
<Columns>
<ItemTemplate>
<asp:Button ID="btnRedirect"
Text="Click me"
CommandArgument='<%#Eval("BkId_ZW")%>'
OnClick="DoRedirect"
runat="server" />
</ItemTemplate>
...
</Columns>
它背后的代码如下:
protected void DoRedirect(object sender, EventArgs e)
{
Button theButton = sender as Button;
string url ="http://../profile/" + theButton.CommandArgument;
Response.Write("<script>window.open('" + url + "');</script>");
}
按下按钮后,新窗口打开(一切都按预期工作),但主页面松散了文本框的值和格式。
发生了什么事?如何解决?
答案 0 :(得分:1)
Response.Write()
不赞成此目的。由于您要在ASP.net页面生命周期的中间添加响应,因此您正在更改页面输出。如果您查看来源,可能会在某个尴尬的地方找到<script>window.open...</script>
行。
因此,请改用Page.ClientScript.RegisterStartUpScript()
。