#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 — Я рад, что этот ответ помог. Если вы делали что-то по-другому, хотите ли вы показать код, который у вас был раньше? Это может помочь другим пользователям.