0

1枚目の画像をご覧ください。 ここに画像の説明を入力

このページでは LinkBut​​ton を使用しています。(「sr001」、「sr003」など)

.aspx ページ

<asp:LinkButton ID="lnkbtn" runat="server" onclick="lnkbtn_Click" 
ValidationGroup='<%# Eval("pid") %>'><%#Eval("productcode") %></asp:LinkButton>

.cs ページ

protected void lnkbtn_Click(object sender, EventArgs e)
{
    int id;
    id = Convert.ToInt32(((LinkButton)sender).ValidationGroup.ToString());
    string abc = "http://development.in/prod-more-info.aspx?pid=" + id;
    Response.Write("<script>window.open('" + abc.ToString() + "','_blank');</script>");
}

さて、このリンクボタンをクリックすると、プロセスが正常に機能します。

しかし..............

私のデザインはこのプロセスによって乱れています.2番目の画像を見てください..

ここに画像の説明を入力

この問題を解決するにはどうすればよいですか?

私を助けてください....

4

2 に答える 2

2

そのままの Response.Write を実行することはお勧めできません。文字通り、コンテンツをレスポンス ストリームに追加するだけだからです。

スクリプトが適切な場所に表示され、実行されることを確認したい場合は、ClientScriptManager.RegisterStartupScript代わりに使用する必要があります。

ClientScriptManager cs = Page.ClientScript;

if (!cs.IsStartupScriptRegistered(this.GetType(), "MoreInfoPopup"))
{
    int id;
    id = Convert.ToInt32(((LinkButton)sender).ValidationGroup.ToString());
    string abc = "http://development.in/prod-more-info.aspx?pid=" + id;
    string script = String.Format("<script>window.open('{0}','_blank');</script>",abc);
    cs.RegisterStartupScript(this.GetType(), "MoreInfoPopup", script);
}
于 2013-08-02T11:57:34.743 に答える
0

ボタンがクリックされたら、ページをリロードしたいだけですか? その場合は、 への応答リダイレクトを行いRequest.Url.AbsolutePathます。

コード:

Response.Redirect(System.Web.HttpContext.Current.Request.Url.AbsolutePath);

于 2013-08-02T11:59:26.157 に答える