2012-03-21 34 views
0

私は、検索基準に基づいて動的に生成されたグリッドを持っています。私は、Ajaxを使用してグリッドを部分的に表示します。それはすべて正常に動作します。動的に生成されたTelerik MVC3グリッド - チェックボックスの追加

これで、最初の列としてチェックボックス列を追加する必要があります。

また、フィルタリング、ページングの並べ替えなどを、部分的な表示になっているので、どのようにすればよいのですか? ソートするヘッダーをクリックすると、ページが見つからないというエラーが表示され、フィルターアイコンが何もしません。

さらにもう1つ。私はグリッドにGridCommandColumnSettingsを追加しようとすると、私はエラー 「無効な初期メンバー宣言子」

コードが

public GridColumnSettings[] NewColumns(DataTable fullDT) 
    { 
     GridColumnSettings[] newColumns = new GridColumnSettings[fullDT.Columns.Count]; 

     for (int i = 0; i < fullDT.Columns.Count; i++) 
     { 
      // set the visibility property for the DeliveryID 
      bool boolDeliveryID; 
      if (fullDT.Columns[i].ColumnName == "DeliveryID") 
       boolDeliveryID = false; 
      else 
       boolDeliveryID = true; 

      newColumns[i] = new GridColumnSettings 
      { 
       new GridCommandColumnSettings 
       { 
        Commands = 
        { 
         new GridEditActionCommand(), 
         new GridDeleteActionCommand() 
        }, 
        Width = "200px", 
        Title = "Commands" 
       }, 
       Member = fullDT.Columns[i].ColumnName, 
       Title = fullDT.Columns[i].ColumnName, 
       Visible = boolDeliveryID, 
       Filterable = true, 
       Sortable = true 
      }; 
     } 
     return newColumns; 
    } 

任意の提案をいただければ幸いですgridcolumnsettingsについては、以下で入手します。

おかげ

私は

答えて

1

)グリッド

Here is my partial for the grid 

@(Html.Telerik().Grid<System.Data.DataRow>(Model.Data.Rows.Cast<System.Data.DataRow>()) 
.Name("Grid") 
.Columns(columns => 
{ 
    columns.LoadSettings(Model.Columns as IEnumerable<GridColumnSettings>); 
}) 
.DataBinding(dataBinding =>  dataBinding.Ajax().Select("_DeliveryManagerCustomBinding", "Deliveries")) 
.EnableCustomBinding(true) 
.Resizable(resize => resize.Columns(true)) 

のための私の部分を追加するために私のポストを編集した私は、Telerikグリッドコントロールを使用する場合、列をこのように追加しますが、見ていませんあなたがやっていることで、私は次のようなことをする必要があると推測する危険があります:

newColumns配列のサイズを1増やします

GridColumnSettings s = new GridColumnSettings() { 
    ClientTemplate("<input type=\"checkbox\" name=\"checkeditems\" value=\"some value\" />") 
    Title("title goes in here") 
}; 

その後、あなたにそれを追加します。)チェックボックス列を追加しようとして再:あなたが最初にそれをしたい場合は、あなたのforループの前に

GridColumnSettings[] newColumns = new GridColumnSettings[fullDT.Columns.Count + 1]; 

次の操作を実行する必要があります。あなたの配列:

newColumns[0] = s; 

してから1へのあなたのために、ループの開始インデックスを増やす:

for (int i = 1; i < fullDT.Columns.Count; i++) 

チェックボックスの列が最初に表示されます

+0

グリッドをレンダリングしようとすると、私はあなたの例を試してみました。 – Squeal

+0

私はあなたの提案にもっとびっくりして働かせました。 ご協力いただきありがとうございます... – Squeal

関連する問題