1

ObjectDataSouce を介して入力されているテレリック 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 では機能せず、テキスト属性のみが返されます (これは予想されることです)。

送信者をチェックボックスとしてキャストしてそのようにするのにうんざりしていますが、実装がうまくいかないようです。

var cb = (GridCheckBoxColumn)sender;

チェックボックス列から値を取得する方法に関するヒントはありますか?

乾杯

4

1 に答える 1

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;

    }
}
于 2012-05-25T06:40:24.227 に答える