获取Telerik RadGrid的行

时间:2012-08-04 09:59:06

标签: c# asp.net telerik radgrid

我正在使用RadGrid,我想访问它的行,但它似乎没有.Rows属性。

这是我到现在为止所尝试的内容:

enter image description here

如何访问rgCustomers的Rows集合?我想为每一行添加一个按钮。

3 个答案:

答案 0 :(得分:8)

根据Telerik's documentation

“网格中的每个动态行表示来自指定数据源的记录。动态行由GridDataItem类(GridItem的后代)表示。

每个GridTableView都有一组GridDataItem类型的行(Items集合)。“

所以你想使用网格的Items集合,它是GridDataItems的集合。

protected void btnLoad_Click(object sender, EventArgs e)
{
  rgCustomers.DataSource = odsCustomers;
  rgCustomers.DataBind();
  foreach (GridDataItem row in rgCustomers.Items)
  {
  }
}

答案 1 :(得分:3)

我假设它是WPF / Silverlight RadGrid?

如果要访问数据绑定网格中的行控制(而不是行数据) - 您必须使用RadGrid的ItemContainerGenerator属性。例如:

rgCustomers.ItemContainerGenerator.ContainerFromIndex(0);

rgCustomers.ItemContainerGenerator.ContainerFromItem(odsCustomers[0]);

将返回第一行控件(如果我没记错的话,是RadGridViewRow类型)

答案 2 :(得分:1)

- 如果要在每一行上添加一个按钮:

GridTemplateColumn GridButtonColumn 可以解决问题。

- 如果要访问当前行:

  1. 使用按钮的OnClick事件处理程序。

    <telerik:RadButton ID="BTN_DEMO" runat="server" HeaderText="N°1 DEMO BTN"
    Text='<%#"Click Me iM N°"+((IhateEvalDataSource) Container.DataItem).Stuff_ID %>' 
    OnClick="BTN_DEMO_Click"></telerik:RadButton>
    
  2. 使用(sender as RadButton).NamingContainer获取对GridDataItem的引用。

    protected void BTN_BL_Click(object sender, EventArgs e)
    {
        GridDataItem G = ((RadButton)sender).NamingContainer as GridDataItem;
    }
    
  3. 使用GetDataKeyValue() method提取记录ID:

    DEMO_INT = (int)G.GetDataKeyValue("mySweetInt"); 
    DEMO_STRING = (string)G.GetDataKeyValue("MyString");