javascript - window.open

时间:2012-09-06 04:04:57

标签: javascript asp.net vb.net

如何从数据库和URL连接ID?

这是我的代码。我有一个错误“服务器标签格式不正确。”

NavigateUrl="javascript:void(window.open('ChangeHistory.aspx?ID="<%# DataBinder.Eval(Container.DataItem, "id")%>" ','_blank','height=600','width=600') );"

3 个答案:

答案 0 :(得分:0)

认为这就是你需要的:

NavigateUrl="javascript:void(window.open('ChangeHistory.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "id")%>','_blank','height=600','width=600') );"

即,移除"之前的<%>%之后的{{1}}。

答案 1 :(得分:0)

您应该尝试从服务器端代码添加NavigateUrl属性...这将非常简单,并且还可以在ID方法中包含window.open

如果它在某些Grid/Repeater/Datalist中,则使用DataBound属性,否则使用Page_Load事件为其添加属性...

实施例

Foocontrol.NavigateUrl=@"javascript:void(window.open
     ('ChangeHistory.aspx? ID='"+YourID+"','_blank','height=600','width=600') )";

修改

protected void yourGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
   {
     HyperLink hlnkViewHistory = (HyperLink)e.Row.FindControl("hlnkViewHistory");
     hlnkViewHistory.NavigateUrl==@"javascript:void(window.open
     ('ChangeHistory.aspx? ID='"+YourID+"','_blank','height=600','width=600') )";
   }
 }

YourID - 将您想要发送的ID添加为参数....

答案 2 :(得分:0)

试试这个。我改变了这个

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# String.Format("ChangeHistory.aspx?id={0}", Eval("id")) %>' onclick="javascript:w= window.open(this.href,'DownloadImage','left=20,top=20,width=500,height=500,toolbar=0,resizable=0');return false;">Open</asp:HyperLink>