我想获取RadGrid中所选复选框的值。 我有一个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
}
}
请告诉我如何获取所选行。
答案 0 :(得分:3)
以下是如何选择是否选中复选框。我正在使用带有CheckBox的GridTemplateColumn作为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>
答案 1 :(得分:1)
我尝试了以下方法,解决了我的问题:
this._Button1.Attributes.Add("OnClick", "GetSelectedItems('" + _RadGrid1.ClientID + "');return false;");