图像按钮在中继器的新页面中打开链接
本文关键字:链接 新页面 按钮 中继器 图像 | 更新日期: 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));
}