Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RadGrid获取[GridClientSelectColumn]所选项目_C#_Asp.net_Telerik Grid - Fatal编程技术网

C# RadGrid获取[GridClientSelectColumn]所选项目

C# RadGrid获取[GridClientSelectColumn]所选项目,c#,asp.net,telerik-grid,C#,Asp.net,Telerik Grid,我想循环并从[GridClientSelectColumn]获取所有选中的复选框项,但即使选中了列,也没有任何行返回。谢谢你的帮助 .aspx 我不确定你用的是什么版本的Telerik,但我知道不管是什么版本,RadGrid都会非常挑剔 Telerik网站上选择项目的演示如下: 这是他们用于演示的标记 <telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" AllowMultiRowSelection="true"

我想循环并从[GridClientSelectColumn]获取所有选中的复选框项,但即使选中了列,也没有任何行返回。谢谢你的帮助

.aspx


我不确定你用的是什么版本的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的项目

我会假设在你上面的帖子中只是一个打字错误,但它应该是

希望有帮助。顺便说一句,他们网站上的演示代码是不正确的,因为他们甚至没有在他们的实时示例代码LOL中定义网格中的所有列。

我就是这么做的:

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