RadGridで作業していて、その行にアクセスしたいのですが、.Rows
プロパティがないようです。
これが私が今まで試したことです:
rgCustomers
のRowsコレクションにアクセスするにはどうすればよいですか?各行にボタンを追加したい。
Telerikのドキュメント によると、
「グリッド内の各動的行は、指定されたデータソースからのレコードを表します。動的行は、GridDataItemクラス(GridItemの子孫)によって表されます。
各GridTableViewには、GridDataItemタイプの行のセット(Itemsコレクション)があります。」
したがって、GridDataItemsのコレクションであるグリッドのItemsコレクションを使用する必要があります。
protected void btnLoad_Click(object sender, EventArgs e)
{
rgCustomers.DataSource = odsCustomers;
rgCustomers.DataBind();
foreach (GridDataItem row in rgCustomers.Items)
{
}
}
WPF/Silverlight RadGridだと思いますか?
(行データではなく)データバインドグリッドの行コントロールにアクセスする場合-RadGridのItemContainerGeneratorプロパティを使用する必要があります。例えば:
rgCustomers.ItemContainerGenerator.ContainerFromIndex(0);
または
rgCustomers.ItemContainerGenerator.ContainerFromItem(odsCustomers[0]);
最初の行のコントロールを返します(正しく覚えていればRadGridViewRowタイプ)
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()メソッド を使用してレコードIDを抽出します。
DEMO_INT = (int)G.GetDataKeyValue("mySweetInt");
DEMO_STRING = (string)G.GetDataKeyValue("MyString");