图像按钮在中继器的新页面中打开链接

本文关键字:链接 新页面 按钮 中继器 图像 | 更新日期: 2023-09-27 18:31:29

>我有以下图像按钮,它驻留在中继器中:

<asp:ImageButton PostBackUrl='<%# DataBinder.Eval(Container.DataItem, "VesselId", "getattachment.do?VesselId={0}") %>' CausesValidation="false" ID="insurancestatus" runat="server"/>

因此,每次用户单击按钮时,都会向他们显示其附件。

此后,要求发生了变化,附件必须在新页面上打开,因此我将以下内容添加到中继器ItemDataBound事件中:

ImageButton imagebuttonInsurance = (ImageButton)e.Item.FindControl("insuranceStatus");
            imagebuttonInsurance.OnClientClick = String.Format("aspnetForm.target = '_blank'; return true()");

现在,当我单击图像时,它确实会打开另一个页面,但它只是在新页面上重新加载上一页。我尝试删除PostBackUrl并连接以下单击事件:

protected void insurancestatus_Click(object sender, ImageClickEventArgs e)
{
    Vessel vessel = (Vessel)e.Item.DataItem;
    Response.Redirect(String.Format("~/Secure/getattachment.do?VesselId={0}", vessel.VesselId));
}

但是我无法处理该项目,因此无法使用 VesselId 作为链接,我在这里哪里出错了?

图像按钮在中继器的新页面中打开链接

使用第二种方法,但使用命令参数属性,如下所示:

 <asp:imagebutton runat=server...... commandargument='<%# Eval("vesselid") %>' />

然后:

protected void insurancestatus_Click(object sender, ImageClickEventArgs e)
{
    string vesselId = ((ImageButton)sender).CommandArgument;
   Response.Redirect(String.Format("~/Secure/getattachment.do?VesselId={0}", vesselId)); 
}