获取后面代码中rad网格内每个复选标记复选框的值

时间:2015-10-15 06:52:41

标签: c# asp.net checkbox telerik-grid

在我的radgrid中,我使用复选框从多个选项中选择所需的值。在我的代码背后,我想获得每个已检查行的值。但我的循环不起作用。

此外,我不确定我是否正在使用rad网格内的复选框的正确方法。请建议

<telerik:RadGrid ID="rg_get_profession" runat="server"
PageSize="100"
AllowSorting="true"
Width="100%"
AllowPaging="True"
ShowGroupPanel="false"
AutoGenerateColumns="false"
GridLines="Both"
HeaderStyle-HorizontalAlign="Left" >
<MasterTableView AutoGenerateColumns="false" AllowFilteringByColumn="false" ShowFooter="false">
    <Columns>
        <telerik:GridTemplateColumn UniqueName="TempCol1" HeaderText="Select">
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:CheckBox ID="CheckBox2" runat="server" />
            </EditItemTemplate>
        </telerik:GridTemplateColumn>
        <telerik:GridBoundColumn DataField="p_id" Display="false" Visible="true" AutoPostBackOnFilter="false" CurrentFilterFunction="Contains" />
        <telerik:GridBoundColumn DataField="p_name" HeaderText="Name" AutoPostBackOnFilter="false" CurrentFilterFunction="Contains" />     
    </Columns>
</MasterTableView>
</telerik:RadGrid>

我想要做的是插入&#34; p_id &#34;对于数据库中的每个已检查行。但我的循环不起作用。请建议我如何实现这一目标。

背后的代码&gt;&gt;

foreach (GridDataItem item in rg_get_profession.Items)
{
    CheckBox chkbox = item.FindControl("TempCol1") as CheckBox;
    if(chkbox != null && chkbox.Checked)
    {
        string id = item.Cells[1].Text;
    }
}

在调试代码时,尽管我检查了rad网格中的多个项目,但是执行不会进入if块内部。 我试着做了

foreach (GridDataItem item in rg_get_profession.MasterTableView.Items)
    {
        CheckBox chkbox = item.FindControl("CheckBox1") as CheckBox;
        if (chkbox != null && chkbox.Checked)
        {           
            string id_ = item.Cells[1].Text;            
        }
    }

现在,当我在复选框中放置复选标记时,我的执行进入循环if (chkbox != null && chkbox.Checked)但我无法访问 p_id 的值。 string id_ = item.Cells[1].Text;未提供 p_id 的值。

如何访问带有复选标记的p_id值?请建议。

1 个答案:

答案 0 :(得分:0)

我将item.Cells[1].Text;更改为item["p_id"].Text;。 用于获取datafield ::

值的代码段
foreach (GridDataItem item in rg_get_profession.MasterTableView.Items)
    {
        CheckBox chkbox = item.FindControl("CheckBox1") as CheckBox;
        if (chkbox != null && chkbox.Checked)
        {           
            string id_ = item["p_id"].Text;            
        }
    }

我可以得到p_id的值,这是检查标记。