将网格视图模板字段<asp:LinkButton 控件数据传递到我的.aspx页面中的 javascript 函数



我有一个 GridView 模板字段,其中包含一个 ASP:Label 字段,该字段每行都有一个唯一的引用编号。我还为该控件分配了一个打开的 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>

任何帮助将不胜感激。

您必须将 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 + "')");
                } 
         }          
    }

最新更新