如何通过后面的webform代码检索Grid CheckBox列值

时间:2012-05-24 22:50:14

标签: asp.net telerik radgrid

我正在使用通过ObjectDataSouce填充的telerik RadGrid。该对象返回一系列布尔字段

<telerik:GridCheckBoxColumn DataField="IsSysAdmin" DataType="System.Boolean"FilterControlAltText="Filter IsSysAdmin column" HeaderText="Sys Admin"
 SortExpression="IsSysAdmin" UniqueName="IsSysAdmin">

一旦我选择了一列,我希望能够推导出布尔值,以便在页面的另一部分中使用。

我可以通过执行以下操作来获取所选行中的值:

  protected void gv_roleList_Command(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "EditItem")
            {
              GridDataItem item = (GridDataItem)e.Item;
              item.Selected = true;
              txt_RoleName.Text = item["RoleName"].Text;

...为简洁而编辑

通过调用列我可以得到值但是这对于GridCheckBoxColumn不起作用,text属性只返回(我期望)。

我已经厌倦了将发件人作为复选框投射到那个方向,但我的实现似乎不起作用。

var cb = (GridCheckBoxColumn)sender;

有没有人知道如何从Checkbox列中获取值?

干杯

1 个答案:

答案 0 :(得分:2)

请查看下面的代码段。

 protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
    if (e.CommandName ==  "EditItem")
    {
        // if current row is in normal mode
        GridDataItem item = e.Item as GridDataItem;
        CheckBox chk = item["IsSysAdmin"].Controls[0] as CheckBox;

        // If your row is in edit mode
        GridEditableItem eitem = e.Item as GridEditableItem;
        CheckBox echk = eitem["IsSysAdmin"].Controls[0] as CheckBox;

    }
}