質問

Javascriptを使用してtelerik radgridコンポーネントの行を読み取ることは問題ありませんが、ポストバックが発生したときに行データサーバー側にアクセスする方法を見つけることができるようです。私は何年もかけて解決策を探しましたが、運はありませんでした。 どんなポインタでも大歓迎です。

トニー

役に立ちましたか?

解決

DataKeyValuesをご覧ください。 OwnerTableViewオブジェクトのプロパティ。特定の行のフィールドを表す値のコレクションにアクセスできます。サイトのユーザーがリンクをクリックしてグリッド内の行を編集すると編集ページに移動するため、EditCommandイベントハンドラーで使用します。クエリ内の特定の行に関する特定の情報を渡す必要があります。文字列。

これが必要なものであることが判明した場合は、このプロパティを使用してどのフィールドを使用可能にするかを定義する必要もあります。これを行うには、グリッドのプロパティシートでMasterTableView.DataKeyNamesプロパティを確認します。基本的に、フィールド名のコンマ区切りリストを指定します。

他のヒント

Telerikグリッドをしばらく使用しており、選択した行のサーバーまたはクライアント側からデータを取得する方法に関するドキュメントでこれらの記事を見つけました:

サーバー側 クライアント側

役立つと思います。

ディック

サーバー側は簡単な部分です:

GridItemCollection gridRows = TestGrid.Items;
foreach (GridDataItem data in gridRows)
{
    ItemClass obj = (ItemClass)data.DataItem;
}

私が知らないのはクライアント側の部分です! :[

private Int32 GetID()
{
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items)
    {
        if (dataItem.Selected == true)
        {
            Int32 ID = (Int32)dataItem.GetDataKeyValue("ID");
            return ID;
        }
    }
    throw new ArgumentNullException("Id Not found");
}
private Int32 GetID()
{
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items)
    {
        if (dataItem.Selected == true)
        {
           // Int32 ID = (Int32)dataItem.GetDataKeyValue("ID");
Int32 ID =Convert.ToInt32(dataItem.GetDataKeyValue("ID"));
            return ID;
        }
    }

}
//this will work

これは私のために機能し、RadGrid.SelectedItemsコレクションを使用するものです。

protected void LinkButton1_Click(object sender, EventArgs e)
    {
        List<Guid> OrderIdList = new List<Guid>();

        foreach (GridDataItem OrderItem in this.RadGrid1.SelectedItems)
        {
            OrderIdList.Add(new Guid(OrderItem.GetDataKeyValue("OrderId").ToString()));
        }
    }

マークアップまたはダイナミックコントロールのページ初期化でコントロールを正しく作成した場合、RadGridは状態を適切に復元します。

データキーから列を保持するように問題のテーブルビューに指示した場合、以下の例のようにデータソースからロードされた初期値にアクセスできます。

protected T GetInitialGridData<T>(GridDataItem item, string uniqueColumnName) {
   item.ThrowIfNull("item");
   uniqueColumnName.ThrowIfNullOrEmpty("uniqueColumnName");

   return (T)item.OwnerTableView.DataKeyValues(gridItem.ItemIndex)(columnName);
}

動的なカスタムテンプレート列を使用していて、現在その状態にある可能性のある値に到達する必要がある場合は、次を使用できます。

protected string GetCustomTextBoxValue(GridDataItem item, string controlID) {
   item.ThrowIfNull("item");
   controlID.ThrowIfNullOrTrimmedEmpty("controlID");

   return ((TextBox)item.FindControl(controlID)).Text;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top