请看第1张图片。
在此页面中,我使用LinkButton。 (比如...“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张图片。
如何解决此问题?
请帮助我......
答案 0 :(得分: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);
}
答案 1 :(得分:0)
您是否只是想在点击按钮后重新加载页面?如果是,请执行response redirect至Request.Url.AbsolutePath
。
代码:
Response.Redirect(System.Web.HttpContext.Current.Request.Url.AbsolutePath);