我正在使用RadGrid,我想访问它的行,但它似乎没有.Rows
属性。
这是我到现在为止所尝试的内容:
如何访问rgCustomers
的Rows集合?我想为每一行添加一个按钮。
答案 0 :(得分:8)
“网格中的每个动态行表示来自指定数据源的记录。动态行由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 可以解决问题。
使用按钮的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;
}
使用GetDataKeyValue() method提取记录ID:
DEMO_INT = (int)G.GetDataKeyValue("mySweetInt");
DEMO_STRING = (string)G.GetDataKeyValue("MyString");