如何从数据库和URL连接ID?
这是我的代码。我有一个错误“服务器标签格式不正确。”
NavigateUrl="javascript:void(window.open('ChangeHistory.aspx?ID="<%# DataBinder.Eval(Container.DataItem, "id")%>" ','_blank','height=600','width=600') );"
答案 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>