グリッドビューの選択したインデックスを取得できますが、グリッド内にある実際のデータを取得したいと思います。グリッド内の行を選択して、「クライアントID」列の実際のデータ値にアクセスできるようにしたい。グリッドは正常に機能しており、SelectedIndexChangedイベントにアクセスできます。それから私は、グリッドに表示されている情報を取得する方法を見つけるために運が悪かったのです。どんな助けでも大歓迎です。
繰り返しますが、コードビハインドからグリッドに表示されるすべてのデータにアクセスする必要があります。
これがデータキーの目的です。以下に示す例のように、アクセスする列をデータキーとして指定するだけです。
<telerik:RadGrid ID="RadGrid1" runat="server" ...>
<MasterTableView DataKeyNames="Column1, Column2, Column3" ...>
...
</MasterTableView>
</telerik>
マークアップでデータキーが割り当てられると、コードビハインド行で、またはSelectedValues
プロパティを使用してデータキーにアクセスできます。
if (RadGrid1.SelectedItems.Count > 0)
{
//access a string value
string column1 = RadGrid1.SelectedValues["Column1"].ToString();
//access an integer value
int column2 = (int)RadGrid1.SelectedValues["Column2"];
}
あなたはこのようにそれを行うことができます:
foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
{
if (item.selected == true)
string mydata = item["ColumnName"].Text;
}
このサイトのドキュメントを読むことをお勧めします http://www.telerik.com/help/aspnet/grid/grdaccessingcellsandrows.html ; Telerikコンポーネントで大いに役立つことは間違いありません。
DataKeysを James Johnson 提案として使用します。 DataItem
イベントのGridDataItem
のSelectedIndexChanged
プロパティにアクセスすることはできません。 nullになります。 Telerikのドキュメント によると「DataItemオブジェクトは、グリッドがデータにバインドされている場合にのみ使用できます。」
DateItem
イベントのように、ItemCreated
が使用可能な場合、元のデータ型MyType
にキャストできます。
private void RadGrid_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if ((e.Item is GridDataItem)) {
GridDataItem gridDataItem = (GridDataItem)e.Item;
MyType dataItem = (MyType)gridDataItem.DataItem;
}
}