在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
}
}
请让我知道如何才能得到选定的行。
如何获取复选框是否被选中。我使用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;");