3

我在 DataList ItemTemplate 中有一个 ImageButton,我试图在单击 ImageButton 时打开一个新页面(新选项卡),但它在同一个选项卡中打开。

<ItemTemplate>
   <asp:ImageButton ID="ibtmImage" runat="server" ImageUrl='<%# Eval("Image") %>'OnCommand="ibtmImage_Command" CommandArgument='<%# Eval("Id").ToString() %>' OnClientClick="aspnetForm.target ='_blank';" />
</ItemTemplate>

protected void ibtmImage_Command(object sender, CommandEventArgs e)
{
   Response.Redirect("ItemList.aspx?Id=" + e.CommandArgument.ToString());
}

如何在新标签/新窗口中打开页面。

有人请帮助我。

4

4 回答 4

3

我正在做这样的事情并在新标签中打开

protected void ibtmImage_Command(object sender, CommandEventArgs e)
{
     string strJS = ("<script type='text/javascript'>window.open('ItemList.aspx?Id=" + e.CommandArgument.ToString() + "','_blank');</script>");
     Page.ClientScript.RegisterStartupScript(this.GetType(), "strJSAlert", strJS);
}
于 2012-06-26T06:53:21.670 回答
1

在您针对 OnClientClick 的 aspx 页面中执行以下操作:

OnClientClick="window.open('http://yourpagetopen/');"

所以你的图像按钮将是:

<asp:ImageButton 
 ID="ibtmImage" 
 runat="server" 
 ImageUrl='<%# Eval("Image") %>'
 OnCommand="ibtmImage_Command" 
 CommandArgument='<%# Eval("Id").ToString() %>' 
 OnClientClick="window.open('aspnetForm'); " />

您也可以摆脱Response.Redirect服务器端事件并从 onClientClick 传递参数。

于 2012-06-26T05:56:41.647 回答
0

ASPX

   <asp:TemplateField Headertext="Name" HeaderStyle-HorizontalAlign="Center">
                        <ItemTemplate>           
                            <asp:HyperLink ID="HyperLink1" runat="server"  Text='<%# Eval("Name") %>' CssClass="no_underline"
                                NavigateUrl='<%# GetNavigateUrl(Eval("Id").ToString()) %>' />
                        </ItemTemplate>
                <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
                    </asp:TemplateField>

CS 绑定下一个函数

   protected string GetNavigateUrl(string Id)
        {
            string startDateStr = StartDate.ToShortDateString();
            string endDateStr = EndDate.ToShortDateString();
            var script = String.Format("javascript:var w=window.showModalDialog('Details.aspx?Id={0}&StartDate={1}&EndDate={2}', " +
                                 "'Details', 'dialogWidth:1120px; dialogHeight:500px; resizable:no; status: no;');", PartnerId, startDateStr, endDateStr);           
            return script;
        }    
于 2012-06-26T05:52:32.683 回答
-1
 <asp:HyperLink ID="docTitle" Text='<%#Eval("Titleofdoc") %>' NavigateUrl='<%# string.Concat("~/UI/UploadFilestest.aspx?docId=", Eval("DocId"))%>' Target="_blank"
                                runat="server" />
于 2013-11-25T07:10:22.100 回答