2012-05-16 3 views
0

У меня есть шаблон шаблона GridView, содержащий поле ASP: Label, которое имеет уникальный ссылочный номер на строку. У меня также есть открытая функция Javascript, назначенная этому элементу управления, который открывает URL-адрес в новом окне и отображает документ с тем же ссылочным номером.Поле шаблона Pass GridView <asp: LinkButton управляет данными в javascript-функции на моей странице .aspx

Я не знаю, как получить ссылочный номер, когда пользователь щелкает 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

Нужно ли вам использовать javascript? Если нет, вы можете запустить перенаправление на событие ItemCommand, выбирая DataKeyValue (ваш уникальный ссылочный номер в строке)? –

+0

Javascript - это единственный способ открыть новое окно без необходимости дважды щелкнуть ссылку на ссылку! – ukjezza

+0

: D Ну, вы можете открыть одно окно с открытым окном без javascript, но, видя, что у вас есть решение, нам не нужно беспокоиться об этом! –

ответ

2

Вам нужно будет добавить событие RowDataBound в сетку. В событии RowDataBound каждая создаваемая строка доступна с данными. Привяжите javascript к кнопке ссылки вместо html, как вы это делали, и передайте ссылочный номер функции javascript из события RowDataBound.

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

Смежные вопросы