0

在我的页面上,我有几个文本框、AJAX 选项卡面板和一个网格视图。

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

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

到底是怎么回事?如何解决?

4

1 回答 1

1

Response.Write()不利于此目的。由于您在 ASP.net 页面生命周期的中间添加到响应,因此您正在更改页面输出。如果您查看源代码,您可能会<script>window.open...</script>在一些尴尬的地方发现您的线路。

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

于 2013-03-20T11:26:41.653 回答