Получить строки Telerik RadGrid

Я работаю над RadGrid, и я хочу получить доступ к его строкам, но кажется, что у него нет свойства .Rows.

Вот что я пробовал до сих пор:

enter image description here

Как я могу получить доступ к коллекции rgCustomers Rows? Я хочу добавить кнопку в каждую строку.

Ответ 1

Согласно Документация Telerik,

"Каждая динамическая строка в сетке представляет собой запись из указанного источника данных. Динамические строки представлены классом GridDataItem (потомком GridItem).

Каждый GridTableView имеет набор строк (коллекция Items) типа GridDataItem. "

Итак, вы хотите использовать коллекцию Items сетки, которая представляет собой коллекцию GridDataItems.

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

Ответ 2

Я предполагаю, что это WPF/Silverlight RadGrid?

Если вы хотите получить доступ к управлению строками в сетке привязки данных (а не к данным строки) - вам придется использовать свойство ItemContainerGenerator для RadGrid. Например:

rgCustomers.ItemContainerGenerator.ContainerFromIndex(0);

или

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

вернет управление первой строкой (типа RadGridViewRow, если я правильно помню)

Ответ 3

- Если вы хотите добавить кнопку в каждую строку:

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>
    
  • Получить ссылку на GridDataItem, используя (отправитель как RadButton).NamingContainer.

    protected void BTN_BL_Click(object sender, EventArgs e)
    {
        GridDataItem G = ((RadButton)sender).NamingContainer as GridDataItem;
    }
    
  • Используйте метод GetDataKeyValue() для извлечения идентификатора записи:

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

Я надеюсь, что это поможет С уважением,
Pierre