单击链接按钮时,在新窗口中打开页面

时间:2010-09-27 20:28:08

标签: c# asp.net

点击链接按钮时,我试图打开一个新窗口。

<asp:LinkButton ID="lnkpackageinfo" CssClass="linkclass" 
    runat="Server" 
    OnClientClick="lnkpackageinfo_Click()">Compare Packages</asp:LinkButton>

我希望在后面的代码中给出目标页面,因为在目标页面中我想使用查询字符串来隐藏几个按钮和链接。很明显

protected void lnkpackageinfo_Click(object sender, EventArgs e)
{

  long MerchantID = CommonHelper.GetLoggedInMerchant();
  string querystringpackageinfo = ApplicationData.URL_MERCHANT_COMPANY_PACKAGE + "?MerchantCompanyPayment";
  Response.Redirect(querystringpackageinfo, false);
}

这对我不起作用。我在哪里做错了?任何人帮助我!提前谢谢你!

3 个答案:

答案 0 :(得分:2)

您正尝试使用客户端标记(lnkpackageinfo_Click)调用服务器端功能(OnClientClick)。

OnClientClick将尝试调用您在属性值中命名的JavaScript函数,该函数不会出现,因为函数是服务器端(代码隐藏)函数。

您需要在页面上编写JavaScript函数,以便客户端打开一个新窗口。

答案 1 :(得分:2)

你能做这样的事吗?

<asp:LinkButton ID="lnkpackageinfo" CssClass="linkclass" runat="Server"> Compare Packages</asp:LinkButton> 


protected void Page_Load(object sender, EventArgs e)
{
    lnkpackageinfo.Attributes.Add("onclick", "javascript:window.open('" + GetURL()+  "'); return false;");

}


public string GetURL()
{
   long MerchantID = CommonHelper.GetLoggedInMerchant(); 
   string querystringpackageinfo = ApplicationData.URL_MERCHANT_COMPANY_PACKAGE + "?   MerchantCompanyPayment"; 

   return querystringpackageinfo;
}

答案 2 :(得分:0)

嗯,你不需要()一件事。 此外,只需使用OnClick=lnkpackageinfo_Click属性。 然后在该函数中设置一个隐藏的字段值来调用一些javascript来打开一个新窗口。

相关问题