Javascript,如何利用get_masterTableView从占位符中动态创建RadGrid

时间:2014-06-23 17:58:55

标签: javascript telerik radgrid

我觉得这个很简单。你如何从动态创建的radgrid中获取get_masterTableView()。你不能使用var radGrid = $find('<%= MyGrid.ClientID %>'),因为在后面的代码中找到的aspx页面中不存在网格。并且GetelementById找到了radgrid,但它没有get_matertableview。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你想在什么时候打电话给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函数将提醒正确的&#34; 7&#34;和&#34; 16&#34;样本值:

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);
    }
}