在RadGrid客户端中获取选定的项

本文关键字:获取 RadGrid 客户端 | 更新日期: 2023-09-27 18:07:53

我想在一个RadGrid中获得选中复选框的值。我有一个网格,文本框和一个按钮如下:

this._RadAjaxPanel.Controls.Add(RadGrid1);
this._RadAjaxPanel.Controls.Add(TextBox1);
this._RadAjaxPanel.Controls.Add(Buton1);

radgrid id设置为RadGrid1和

Button1.OnClientClick = "GetSelectedItems("+ this._RadGrid1 +")";

在按钮的点击一个javascript被称为我想知道哪些行已被选中。javascript函数如下,但它是不正确的:

 function GetSelectedItems(grid) {           
    var selectedRows = grid.get_selectedItems();
    for (var i = 0; i < selectedRows.length; i++) {
        var row = selectedRows[i];
        var cell = grid.getCellByColumnUniqueName(row, "CategoryID")
        //here cell.innerHTML holds the value of the cell    
    }
}

请让我知道如何才能得到选定的行。

在RadGrid客户端中获取选定的项

如何获取复选框是否被选中。我使用GridTemplateColumn和CheckBox作为ItemTemplate, Telerik总是建议使用GridCheckBoxColumn。

技巧是获取单元格中的内部HTML,并解析出控件的名称。单元格值将类似于id=cbxRow,其中CheckBox控件的ID为cbxRow,如下面的示例所示。 JavaScript:

var grid = $find("RadGrid1");
var masterTableView = grid.get_masterTableView();
var selectedRows = masterTableView.get_selectedItems();
for (var i = 0; i < selectedRows.length; i++) {
    var cellCB = masterTableView.getCellByColumnUniqueName(row, "CB");
    var innerCB = cellCB.innerHTML;
    var locId = innerCB.indexOf("id=");
    var locIdEnd = innerCB.indexOf("'" ", locId);
    var idVal = innerCB.substr(locId + 4, locIdEnd - locId - 4);
    var cbx = document.getElementById(idVal);
    if (cbx.checked) {
        alert("The checkbox is checked!");
    }
    else {
        alert("The checkbox is not checked!");
    }
}

ASPX:

<telerik:GridTemplateColumn UniqueName="CB" ...>
    <ItemTemplate>
        <asp:CheckBox ID="cbxRow" runat="server">
    </ItemTemplate>
</telerik:GridTemplateColumn>

我尝试了以下方法,解决了我的问题:

this._Button1.Attributes.Add("OnClick", "GetSelectedItems('" + _RadGrid1.ClientID + "');return false;");