모델을 모눈에 바인딩하고 선택 항목을 가져 오는 중입니다. 모델을 전달하고 내가 선택한 데이터를 표시 확인란과 함께 표시 할 수 있습니다. 그러나 컨트롤러에 모델을 다시 전달하려고하면 선택 모델을 변경하지 않고 처음에 뷰에 전달 된 동일한 모델을 다시 얻는 것처럼 보입니다.모델을 모눈에 바인딩하고 선택 항목을 다시 게시
보기 :
@model ExViewModel
@(Html.Kendo().Grid(Model.Classes)
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.IsChecked).ClientTemplate("<input type='checkbox' #= IsChecked ? checked='checked':'' # class='chkbx' />" + "<input type='hidden' name='id' value='#= IsChecked#' />").Width(50);
columns.Bound(c => c.Name).Width(175);
columns.Bound(c => c.Details).Width(175);
})
.Scrollable().Groupable().Sortable().Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
)
)
@using (Html.BeginForm("CallNext", "Home", FormMethod.Post))
{
<input hidden="hidden" id="model_output" name="model_output" value="@(Json.Encode(Model))" />
<input id="btnSubmit" class="btn btn-primary" type="submit" value="Next >" />
}
<script>
$(function() {
$('#grid').on('click', '.chkbx', function() {
var checked = $(this).is(':checked');
var grid = $('#grid').data().kendoGrid;
var dataItem = grid.dataItem($(this).closest('tr'));
dataItem.set('IsChecked', checked);
})
})
</script>
컨트롤러 : 위의 사용
[HttpPost]
public ActionResult CallNext(string model_output)
{
. . .
}
, 내가 다시 컨트롤러에서 얻을 model_output이 클래스에 대한의 IsChecked 플래그에 대한 모든 기본 값이 있습니다. 나는 내가 뭘 바라보고 있는지 잘 모르겠다 - 나는 몇 가지 예를 온라인으로 보았지만 나는 Kendo에 대한 많은 경험이 없기 때문에 잘못된 것이 무엇인지 확신 할 수 없다. 어떤 조언을 크게 주시면 감사하겠습니다.
이'Json.Encode (Model)'은 면도 페이지가 html로 렌더링 된 후에도 일정합니다. 즉, 체크 박스를 클릭하면이'Model' 객체는 여전히 동일합니다. Kendo UI가 행 선택 기능을 제공하기 때문에 맞춤 체크 박스가 필요합니까? –
불행히도 확인란이 필요하며 데이터를 전달하는 다른 방법이 있습니까? 예를 들어 뷰백에서 모델을 전달하면 업데이트 할 수 있습니까? – user1267983
클릭 처리기가 실행 중인지 확인할 수 있습니까? 나는 예라고 추정 할 것이다. – Richard