2009-11-03 5 views
0

У меня есть сетка радара на моей странице и рама-полоса, на которой запрашивается rquirement, когда пользователь нажимает на любую строку в сетке рада, все детали конкретной строки должны быть заполнены в раде вкладка. Моя функция для заполнения полосы вклада rad написана в jquery. Моя проблема заключается в том, как получить элементы в сетке рада. Я написалRad Grid + jquery

var grid = $find("RadGrid1") 

var items = grid.items.count; 

Это дает мне ошибку. Как я могу это исправить?

ответ

0

попробовать герметизирующего ваш var grid = $find("RadGrid1") внутри функции $ (документ) .ready()

$(document).ready(function() { 
    var grid = $find("RadGrid1"); 
}); 

стороне клиента ссылки на объект ASP.NET создаются в самом конце генерации страницы, так что вы должны ждать, пока это не будет сделано до $ находка может дать вам ссылку, которую вы ищете

2

Вы можете получить доступ к значениям для выбранных элементов, используя свойство MasterTableView.ClientDataKeyNames, чтобы указать, к какому ключу вы хотите получить доступ. Вы можете получить доступ к значениям во время клиентского OnRowSelected события, вызвав getDataKeyValues("KeyName"). Вот пример:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RadGridCustomFooter._Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>RadGrid Example</title> 
    <script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> 
     <telerik:RadGrid ID="rgCustomers" runat="server" Skin="Black" 
      AllowPaging="true" 
      AllowSorting="true" 
      PageSize="8"> 
      <ClientSettings> 
       <ClientEvents OnRowSelected="grid_rowSelected" /> 
       <Selecting AllowRowSelect="true" /> 
      </ClientSettings> 
      <MasterTableView 
       ClientDataKeyNames="ID,Name,Address,Sales"> 
       <Columns> 
        <telerik:GridBoundColumn 
         DataField="ID" 
         UniqueName="ID"> 
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn 
         DataField="Name" 
         UniqueName="Name"> 
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn 
         DataField="Address" 
         UniqueName="Address"> 
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn 
         DataField="Sales" 
         DataFormatString="{0:C}" 
         UniqueName="Sales"> 
        </telerik:GridBoundColumn> 
       </Columns> 
      </MasterTableView> 
      <SelectedItemStyle CssClass="none" /> 
     </telerik:RadGrid>   
     <div id="results"></div> 

     <script type="text/javascript"> 
      function grid_rowSelected(sender, args) { 
       var id = args.getDataKeyValue("ID"); 
       var name = args.getDataKeyValue("Name"); 
       var address = args.getDataKeyValue("Address"); 
       var sales = args.getDataKeyValue("Sales"); 
       var selectedValues = String.format("ID: {0}, Name: {1}, Address: {2}, Sales: {3}", id, name, address, sales); 
       $('#results').html(selectedValues); 
      } 
     </script> 
    </form> 
</body> 
</html> 

А вот код-за:

using System; 
using Telerik.Web.UI; 

namespace RadGridCustomFooter 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected override void OnInit(EventArgs e) 
     { 
      base.OnInit(e); 
      rgCustomers.NeedDataSource += new GridNeedDataSourceEventHandler((s, a) => 
      { 
       var customers = new[] { 
        new { ID = 1, Name = "Acme Products", Address = "123 Maple Drive", Sales = 23450 }, 
        new { ID = 2, Name = "Northwind", Address = "1 First Street", Sales = 11569 }, 
        new { ID = 3, Name = "Alverson Utilities", Address = "890 Union Avenue", Sales = 78232 }, 
        new { ID = 4, Name = "Creative Solutions", Address = "91223 Texas Drive", Sales = 110058 }, 
        new { ID = 5, Name = "Northwind", Address = "1 First Street", Sales = 11569 }, 
        new { ID = 6, Name = "Alverson Utilities", Address = "890 Union Avenue", Sales = 78232 }, 
        new { ID = 7, Name = "Northwind", Address = "1 First Street", Sales = 11569 }, 
        new { ID = 8, Name = "Acme Products", Address = "123 Maple Drive", Sales = 23450 }, 
        new { ID = 9, Name = "Creative Solutions", Address = "91223 Texas Drive", Sales = 110058 }, 
        new { ID = 10, Name = "Northwind", Address = "1 First Street", Sales = 11569 }, 
        new { ID = 11, Name = "Alverson Utilities", Address = "890 Union Avenue", Sales = 78232 }, 
        new { ID = 12, Name = "Acme Products", Address = "123 Maple Drive", Sales = 23450 }, 
        new { ID = 13, Name = "Creative Solutions", Address = "91223 Texas Drive", Sales = 110058 } 
       }; 
       ((RadGrid)s).DataSource = customers; 
      }); 
     } 
    } 
} 

Отъезд documentation here для более подробной информации.

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