页面丢失格式

时间:2013-03-20 10:45:42

标签: c# asp.net

在我的页面上,我有几个文本框,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>");           
    }

按下按钮后,新窗口打开(一切都按预期工作),但主页面松散了文本框的值和格式。

发生了什么事?如何解决?

1 个答案:

答案 0 :(得分:1)

Response.Write()不赞成此目的。由于您要在ASP.net页面生命周期的中间添加响应,因此您正在更改页面输出。如果您查看来源,可能会在某个尴尬的地方找到<script>window.open...</script>行。

因此,请改用Page.ClientScript.RegisterStartUpScript()