2015-01-15 2 views
1

Привет Я новичок в сетке пользовательского интерфейса Kendo с бритвой ASP.Net MVC, я пытаюсь создать сетку с тремя столбцами, причем первый столбец не редактируется, а два других редактируются с помощью цифровой ввод текста, это код, который у меня есть со мной прямо сейчас, что еще добавить? будет что-то вроде .Editable (редактируемый => editable.Mode (GridEditMode.InLine)) помощи, но как сделать первый столбец только для чтенияРедактируемый Grid Kendo UI Asp.Net MVC

@Html.Kendo().Grid(Model.CpfPayableYearlyDetail.CpfPayableMonthlyDetails).Name("CpfPayableMonthlyDetails").Columns(columns => 
     { 
      columns.Bound(p => p.Month).Title("Month"); 
      columns.Bound(p => p.OrdinaryWagePaid).Title("Ordinary Wages (OW)"); 
      columns.Bound(p => p.AdditionalWagePaid).Title("Additional Wages (AW)"); 
     }) 

Я вроде понял, как достичь этого

@Html.Kendo().Grid(Model.CpfPayableYearlyDetail.CpfPayableMonthlyDetails).Name("CpfPayableMonthlyDetails").Columns(columns => 
     { 
      columns.Bound(p => p.Month).Title("Month"); 
      columns.Bound(p => p.OrdinaryWagePaid).Title("Ordinary Wages (OW)").ClientTemplate(Html.Kendo().NumericTextBox().Name("OW").ToClientTemplate().ToHtmlString()); 
      columns.Bound(p => p.AdditionalWagePaid).Title("Additional Wages (AW)").ClientTemplate(Html.Kendo().NumericTextBox().Name("AW").ToClientTemplate().ToHtmlString()); 
     }).Editable(editable => editable.Mode(GridEditMode.InCell)).DataSource(dataSource => dataSource 
      .Ajax().Model(model => model.Id(m => m.Month))) 

но есть проблема значение из источника данных не становится связанной со столбцами editbale/клетками

+0

Вы новый ... поэтому позвольте мне дать вам совет ... Переключитесь на JavaScript SDK кендо ... это даст вам меньше головной боли, и это будет дают вам больше контроля над всеми функциями. Я не хочу видеть, как вы тратите время на бритву, чтобы работать ... учитывая, что бритва, которую вы кодируете, kendo будет генерировать javascript и вводить ее на вашу страницу в любом случае. –

+0

Не могу согласиться с вами больше! но использование бритвы - это что-то вроде ограничения, которое у меня есть в настоящее время – Abhilash

+0

Constraint? объясните ... эта же вещь бритвы может быть переписана в JS в кратчайшие сроки. –

ответ

1

После некоторых исследований этого, как он работал

@(Html.Kendo().Grid(Model.CpfPayableMonthlyDetails) 
    .Name("CpfPayableMonthlyDetails") 
    .Editable(editable => editable.Mode(GridEditMode.InCell)) 
    .Columns(columns => 
    { 
     columns.Bound(p => p.Month).ClientTemplate("#= Month #" + 
      "<input type='hidden' name='CpfPayableMonthlyDetails[#= index(data)#].Month' value='#= Month #' />" 
     ); 
     columns.Bound(p => p.OrdinaryWagePaid).ClientTemplate("#= OrdinaryWagePaid #" + 
      "<input type='hidden' name='CpfPayableMonthlyDetails[#= index(data)#].OrdinaryWagePaid' value='#= OrdinaryWagePaid #' />" 
     ).ClientFooterTemplate("#=sum#"); 
     columns.Bound(p => p.AdditionalWagePaid).ClientTemplate("#= AdditionalWagePaid #" + 
      "<input type='hidden' name='CpfPayableMonthlyDetails[#= index(data)#].AdditionalWagePaid' value='#= AdditionalWagePaid #' />" 
     ).ClientFooterTemplate("#=sum#"); 
    }) 
.DataSource(dataSource => dataSource.Ajax() 
    .Model(m => 
    { 
     m.Id(p => p.Month); 
     m.Field(p => p.Month).Editable(false); 
     m.Field(p => p.OrdinaryWagePaid).Editable(true); 
     m.Field(p => p.AdditionalWagePaid).Editable(true); 
    }) 
    .Batch(true) 
     .ServerOperation(false).Aggregates(aggregates => 
          { 
           aggregates.Add(p => p.OrdinaryWagePaid).Sum(); 
           aggregates.Add(p => p.AdditionalWagePaid).Sum(); 
          }) 
)) 

и чуть-чуть Дж.С.

function index(dataItem) { 
    var data = $("#CpfPayableMonthlyDetails").data("kendoGrid").dataSource.data(); 
    return data.indexOf(dataItem); 
} 
Смежные вопросы