2016-07-27 3 views
0

Я разрабатываю приложение в mvc 4, в котором у меня есть grid.mvc, чтобы показать некоторые данные пользователям, в которых у меня есть поле с флажком. Проблема в том, что когда они используют пейджинг, значение флажка чиста и не поддерживает значение true. Любые предложения по решению этой проблемы? Спасибо.Сохранять значение checkbox в grid.mvc

+0

Вы устанавливаете значение флажка при загрузке страницы? Если это так, вам нужно будет добавить код, чтобы сделать это, только если они сначала посещают страницу, а не подкачки. Если вы покажете часть своего кода, у меня может быть лучшая идея/уметь разрабатывать немного больше. – issharp

+0

Спасибо вам за поддержку –

ответ

1

Я не уверен, так что вы должны попробовать это, как у меня нет никакого способа тестирования это прямо сейчас, но я м уверен, что ваша проблема в том, где вы создаете флажок:

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

Каждый раз, когда ваш пользователь использует пейджинг, перезагружается страница тянуть вверх следующий набор данных. Таким образом, каждый раз это происходит, ваш флажок устанавливается вышеуказанным кодом. Эта строка кода, которую я скопировал у вас, не устанавливает флажок для проверки, поэтому по умолчанию он будет снят. Вот почему, даже если ваш пользователь установил флажок, он не будет отмечен, когда они будут отображаться на странице.

Что вам нужно сделать, это установить какую-то переменную, которая отслеживает, проверяется или нет флажок. Вам нужно передать эту переменную в ваше представление, когда происходит пейджинг, чтобы при загрузке новой страницы вы можете либо установить флажок, либо установить флажок, в зависимости от того, что пользователь сделал на предыдущей странице. При создании окна, код будет выглядеть примерно так:

@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

Смежные вопросы