【问题标题】:RadGrid get [GridClientSelectColumn] selected ItemsRadGrid 获取 [GridClientSelectColumn] 选定项
【发布时间】:2014-05-11 04:19:10
【问题描述】:

我想循环并从 [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;
    }
}

【问题讨论】:

    标签: c# asp.net telerik-grid


    【解决方案1】:

    我不确定您使用的是哪个版本的 Telerik,但我知道无论版本如何,RadGrid 都会非常挑剔。

    Telerik网站上选择物品的demo如下:

    http://demos.telerik.com/aspnet-ajax/grid/examples/functionality/selecting/row-selection/defaultcs.aspx

    这是他们用于演示的标记。

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

    基于以上,我会检查:

    1. 您使用的是MasterTableView吗?如果不是,即使您没有明细表,您也可能想尝试这种方法。如果 RadGrid_1.MasterTableView.SelectedItems 不起作用,您可以尝试遍历 RadGrid_1.MasterTableView.Items 并检查 item.Selected 为 true 的项目。

    2. 我将假设您上面帖子中的&lt;/column&gt; 只是一个错字,但它应该是&lt;/Columns&gt;

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

    【讨论】:

      【解决方案2】:

      这是我的工作:

       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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-17
        • 2014-08-31
        • 1970-01-01
        • 1970-01-01
        • 2011-12-13
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        相关资源
        最近更新 更多