asp.net打开新选项卡和回发事件

时间:2015-09-23 18:51:49

标签: asp.net

我的asp.net帽子有点尘土飞扬,所以希望这将是一个简单的问题。 C#asp.net 4.5

我的表单上需要一个控件:

  • 在新标签页中打开一个页面(不是窗口,因为它没有显示在移动浏览器上)
  • 回发到服务器端方法。我需要服务器端回调,因为我必须修改一些数据绑定数据。

我似乎无法同时获得这两个条件。

如果我使用 asp:Button ,我可以获取服务器端事件,但无法在标签页中打开新页面,而不是窗口。

如果我使用 asp:HyperLink ,它将在新标签页中打开,但我无法获得服务器端事件。

如果我使用 asp:LinkBut​​ton ,它将在当前标签中打开。如果我设置了target =" _ blank",那么我会收到错误" ' webform_postbackoptions'未定义"

问题:

  1. 是否有可以正确执行这两种情况的控件?
  2. 如果没有,对于没有URL的控件,我可以从服务器端使用哪些代码来打开新的Tab而不是Window? (我知道它通常由浏览器决定打开什么,但不知何故超链接控件打开正常,所以必须有办法!)
  3. 对于没有OnClick事件的控件,如何调用我的服务器端函数? (来自客户端事件中的javascript可能吗?)
  4. 请注意,任何将表单目标更改为" _Blank"破坏了页面其余部分的功能。

    代码:

    protected void btn_Docsign_Click(object sender, EventArgs e)
    {
        //Do stuff here         
    
        //open window - this always opens a window, not a tab
        Page page = (Page)HttpContext.Current.Handler;
        String DocusignLink = "myurl.com"
        if (page != null)
        {
            string script = String.Format(@"window.open(""{0}"", ""{1}"", ""{2}"");", DocusignLink, "_Blank", "toolbar=1,menubar=1,resizable=1,scrollbars=1,top=0,left=0");
            ScriptManager.RegisterStartupScript(page, typeof(Page), "Redirect", script, true);
        }
    
        //Response.Redirect(DocusignLink); //opens in current tab
    }
    

0 个答案:

没有答案