首页 文章

获取Telerik RadGrid的行

提问于
浏览
12

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

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

enter image description here

我怎样才能访问 rgCustomers 的Rows系列?我想为每一行添加一个按钮 .

3 回答

  • 3

    我假设它是WPF / Silverlight RadGrid?

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

    rgCustomers.ItemContainerGenerator.ContainerFromIndex(0);
    

    要么

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

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

  • 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

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

    GridTemplateColumn或GridButtonColumn将起到作用 .

    - 如果要访问当前行:

    • 使用按钮的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>
    
    • 使用(sender as RadButton).NamingContainer获取对GridDataItem的引用 .
    protected void BTN_BL_Click(object sender, EventArgs e)
    {
        GridDataItem G = ((RadButton)sender).NamingContainer as GridDataItem;
    }
    
    DEMO_INT = (int)G.GetDataKeyValue("mySweetInt"); 
    DEMO_STRING = (string)G.GetDataKeyValue("MyString");
    

相关问题