我想从[GridClientSelectColumn]循环并获取所有选中的复选框项,但即使检查了列,也没有任何行返回。谢谢你的帮助。
的.aspx
<telerik:RadGrid ID="RadGrid_1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CellSpacing="0" GridLines="None"
Skin="Outlook" AllowMultiRowSelection="True" AllowSorting="True">
<ClientSettings>
<Selecting AllowRowSelect="True" />
</ClientSettings>
<Columns>
<telerik:GridClientSelectColumn FilterControlAltText="Filter template_selected column"
UniqueName="template_selected">
</telerik:GridClientSelectColumn>
<telerik:GridBoundColumn FilterControlAltText="Filter ID column"
HeaderText="PHID" UniqueName="ID" Visible="False"
DataField="PHID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn FilterControlAltText="Filter Title column"
HeaderText="Title" UniqueName="Title" DataField="Title">
</telerik:GridBoundColumn>
</columns>
.aspx.cs
protected void btn_Click(object sender, EventArgs e)
{
string id;
bool chec;
foreach (GridDataItem item in RadGrid_1.SelectedItems)
{
CheckBox chk = (CheckBox)item["template_selected"].Controls[0];
title = item["Title"].Text;
chec = chk.Checked;
}
}
答案 0 :(得分:0)
我不确定您使用的是哪个版本的Telerik,但我知道无论版本如何,RadGrid都会非常挑剔。
Telerik网站上用于选择项目的演示如下:
这是他们用于演示的标记。
<telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" AllowMultiRowSelection="true"
runat="server" AllowSorting="True" GridLines="None" OnPreRender="RadGrid1_PreRender">
<MasterTableView>
<Columns>
<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn">
</telerik:GridClientSelectColumn>
</Columns>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="true">
<Selecting AllowRowSelect="True"></Selecting>
<ClientEvents OnRowMouseOver="RowMouseOver" />
</ClientSettings>
</telerik:RadGrid>
基于以上所述,我会检查:
您使用的是MasterTableView
吗?如果不是,即使您没有详细信息表,也可能需要尝试这种方法。如果RadGrid_1.MasterTableView.SelectedItems
不起作用,您可以尝试遍历RadGrid_1.MasterTableView.Items
并检查item.Selected为true的项目。
我将假设您帖子中的</column>
只是一个错字,但它应该是</Columns>
希望有所帮助。 (顺便提一下,他们网站上的演示代码不正确,因为他们甚至没有在他们的“实时”示例代码LOL中定义网格中的所有列。)
答案 1 :(得分:0)
这是我的工作:
For Each griditem1 As GridDataItem In RadGrid.MasterTableView.Items
If griditem1.Selected Then
Dim DocumentID As String = griditem1.OwnerTableView.DataKeyValues(griditem1.ItemIndex)("DocID").ToString
End If