c# - 传递GridView模板字段<asp :LinkButton control data to javascript function in my . aspx页面

标签 c# javascript .net gridview

我有一个 GridView 模板字段,其中包含一个 ASP:Label 字段,该字段每行都有一个唯一的引用号。我还为该控件分配了一个开放的 Javascript 函数,该函数在新窗口中打开 URL 并显示相同引用号的文档。

我不知道如何在用户单击特定行上的 LinkBut​​ton 时获取引用号,并在窗口打开之前将其传递给我的 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 绑定(bind)到链接按钮而不是 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 + "')");

                } 
         }          
    }

关于c# - 传递GridView模板字段<asp :LinkButton control data to javascript function in my . aspx页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10616977/

相关文章:

.net - 调整对象图的 XAML 序列化

c# - 绘制控件时翻转坐标

c# - 复选框值始终为空,即使我选中它

c# - 通过 ReSharper 将类(class)移动到另一个类(class)

javascript - javascript 中范围界定如何工作

javascript - 请问为什么这段代码会在 onclick 事件后刷新我的页面?

c# - 通过 Storyboard 调整 Grid.Column 中的网格大小?

c# - 在 C# 中创建和保存文件

javascript - View 中的 Backbone.js EL 和模板

.net - 如何将文件的所有者设置为SYSTEM?