在我的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值?请建议。
答案 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的值,这是检查标记。