Javascript, как использовать get_masterTableView из динамически создаваемой RadGrid внутри заполнителя

#javascript #telerik #radgrid

#javascript #telerik #radgrid

Вопрос:

Я думал, что это будет просто. Как использовать get_masterTableView() из динамически создаваемой radgrid. Вы не можете использовать var radGrid = $find('<%= MyGrid.ClientID %>') , потому что сетка не существует на странице aspx, которую она находится в коде. И getElementById находит radgrid, но у него нет get_matertableview.

Есть мысли?

Ответ №1:

В какой момент вы пытаетесь дозвониться get_masterTableView() ? Этот пример должен сработать.

ASPX:

 <asp:PlaceHolder ID="phRG" runat="server"></asp:PlaceHolder>
 

C#:

 var rg = new RadGrid();
rg.ID = "RadGrid1";
rg.ClientSettings.ClientEvents.OnGridCreated = "gridCreatedTest";
rg.MasterTableView.Columns.Add(new GridBoundColumn()
{
    UniqueName = "TransAmnt", DataField = "TransAmnt", SortExpression = "TransAmnt"
});

var batchChecks = new DataTable("checksRandomName");
batchChecks.Columns.Add("TransAmount");
batchChecks.Rows.Add(new ArrayList() { 7 }.ToArray());
batchChecks.Rows.Add(new ArrayList() { 16 }.ToArray());

var dsBatch = new DataSet("batch");
dsBatch.Tables.Add(batchChecks);

rg.VirtualItemCount = dsBatch.Tables.Count;
rg.DataSource = dsBatch;

phRG.Controls.Add(rg);
 

Эта функция JavaScript предупредит о правильных значениях выборки «7» и «16»:

 function gridCreatedTest() {
    var grid = $find("RadGrid1"),
        masterTable = grid.get_masterTableView(),
        rows = masterTable.get_dataItems();
    for (i = 0; i < rows.length; i  ) {
        row = rows[i];
        alert(masterTable.getCellByColumnUniqueName(row, "TransAmount").innerHTML);
    }
}
 

Комментарии:

1. @Mike — Я рад, что этот ответ помог. Если вы делали что-то по-другому, хотите ли вы показать код, который у вас был раньше? Это может помочь другим пользователям.