2016-07-27 18 views
0

私はmvc 4でアプリケーションを開発しています。このアプリケーションではgrid.mvcを使用して、チェックボックスのあるフィールドを持つユーザーにデータを表示します。問題は、ページングを使用してチェックボックスの値がきれいで、値をtrueに維持しない場合です。この問題を解決するための提案はありますか? ありがとうございます。あなたがサポートするためにgrid.mvcのチェックボックスの値を維持する

+0

ページの読み込み時にチェックボックスの値をリセットしていますか?その場合は、ページングではなく、ページに最初にアクセスした場合にのみコードを追加する必要があります。あなたのコードの一部を表示すると、私はより良いアイデアを持っているかもしれません/もう少し詳しく説明することができます。 – issharp

+0

ありがとうございました –

答えて

1

です

@Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new {}) 

ユーザーがページングを使用するたびに、ページのリロードは、データの次のセットをプルアップする:チェックボックスを作成します。ここで、mはかなり確信して、あなたの問題があります。したがって、これが起こるたびにチェックボックスが上記のコードで設定されます。私があなたからコピーしたコード行は、チェックボックスをチェックするように設定していないので、デフォルトではチェックされません。これは、ユーザーがボックスにチェックを入れても、ページを表示するとチェックが外されるためです。

あなたがする必要があることは、ボックスがチェックされているかどうかを追跡する何らかの変数を設定することです。ページングが発生したときにこの変数をビューに渡す必要があります。新しいページがロードされたときに、前のページで行った操作に応じて、チェックボックスをオンまたはオフにすることができます。

@Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new { @checked = yourVariableHere }) 

は、このような状況で、あなたのオプションの有用な議論のためのthis stackoverflow question threadを参照してください:あなたはあなたのボックスを作成すると、コードは次のようになります。

1

おかげで、次はあなたが、私は今それをテストする方法がないとして、これを試してみる必要がありますので、私は、肯定的ではないんだけど、私は」私の見解

<div class="container-fluid table-responsive"> 
      @Html.Grid(Model).Named("grdParticipantes").Columns(columns => 
      { 
       columns.Add().Titled("Seleccionar").Encoded(false).Sanitized(false).SetWidth(45).RenderValueAs(p => @Html.CheckBox("ckbPersona_" + Convert.ToString(p.IdPersona), new {})); 
       columns.Add(p => p.NombrePersona).Titled(IdiomaDirectorio.lblParticipante).Sortable(true).Filterable(true); 
       columns.Add(p => p.Equipo).Titled(IdiomaDirectorio.lblEquipo).Sortable(true).Filterable(true); 
      }).WithPaging(3).WithMultipleFilters() 
     </div> 
+0

私はあなたの質問に提案した編集を受け入れてください。追加のコードは、元の質問に配置する必要があり、答えとしては配置しないでください。 – issharp

関連する問題