我有一个包含ASP:Label字段的GridView模板字段,每个行都有一个唯一的引用号。我还有一个分配给该控件的开放Javascript函数,它在新窗口中打开一个URL并显示相同参考编号的文档。
当用户点击特定行上的LinkButton时,我不知道如何获取参考号,并在窗口打开之前将其传递给我的Javascript函数。
代码:
enter code here
function openPreview()
{
var url = "quotereport.aspx?view=esq&&ref=REFNUMBER"; window.open(url);
}
<asp:TemplateField HeaderText="" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lbNewWindow" runat="server" OnClientClick="openPreview ()">Window</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
非常感谢任何帮助。
答案 0 :(得分:2)
您必须将RowDataBound事件添加到网格中。在RowDataBound事件中,可以使用数据访问创建的每一行。将javascript绑定到链接按钮而不是html,并将参考编号从RowDataBound事件传递给javascript函数。
protected void gvListing_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
System.Web.UI.WebControls.LinkButton lbNewWindow= new System.Web.UI.WebControls.LinkButton();
lbNewWindow = (System.Web.UI.WebControls.LinkButton)e.Row.FindControl("lbNewWindow");
if (lbNewWindow!= null)
{
string YourRefNumber = DataBinder.Eval("e.Row.DataItem", "ColumnNameInDataSource").ToString();
lbNewWindow.Attributes.Add("onclick","openPreview('"+ YourRefNumber + "')");
}
}
}