2012-05-16 16 views
0

我有一個GridView模板字段,其中包含一個ASP:標籤字段,每個行都有一個唯一的引用號。我還爲該控件分配了一個開放的Javascript函數,該函數在新窗口中打開一個URL並顯示相同參考號的文檔。傳遞GridView模板字段<asp:LinkBut​​ton控制數據到我的.aspx頁面中的javascript函數

我不知道如何在用戶單擊特定行上的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> 

任何幫助將非常感激。

+0

您是否一定要使用javascript?如果沒有,你可以在ItemCommand事件上觸發重定向選擇DataKeyValue(每行唯一的引用號)? –

+0

JavaScript是我發現打開一個新窗口的唯一方法,無需點擊兩次我的linkbutton! – ukjezza

+0

:D那麼你可以做一個沒有JavaScript的單擊打開的窗口,但看到你有一個解決方案,我們不需要擔心! –

回答

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 + "')"); 

       } 
     }   
    } 
+0

完美,非常感謝! – ukjezza

相關問題