Hi,
We have a little problem with control @html.kendo().CurrencyTextBox. We have a view where we have definite a CurrencyTextBox, this view is called from a grid from method .EditorTemplateName(“View”)
I send you two images, one image in Internet Explorer with correct format and another from Mozilla Firefox.
Now I show you the code grid from main view:
01.@(Html.Kendo().Grid<ValoritzablesViewModel>()02. .Name("refundables")03. .HtmlAttributes(new { style = "height: 100%; border: 0;" })04. .ToolBar(t =>05. {06. if (User.IsInRole("Modify"))07. {08. t.Save().SaveText("Validar");09. }10. })11. .Columns(columns =>12. {13. columns.ForeignKey(f => f.CentreID, (System.Collections.IEnumerable)ViewBag.Centres, "ContactID", "Nom").Width(120);14. columns.ForeignKey(f => f.CycleID, (System.Collections.IEnumerable)ViewBag.BillingCycles, "OptionID", "Name").EditorTemplateName("CustomGridForeignKey").Width(90);15. columns.Bound(f => f.CodFact).Width(100);16. columns.Bound(f => f.ProductorName);17. columns.Bound(f => f.DataServei).Width(100);18. columns.Bound(f => f.ServiceID).Width(80);19. columns.Bound(f => f.RefExt).Width(80);20. columns.Bound(f => f.DocNum).Width(100);21. columns.ForeignKey(f => f.Reference, (System.Collections.IEnumerable)ViewBag.CatalegResidus, "Value", "Text");22. columns.Bound(f => f.Quantitat).Width(80);23. columns.Bound(f => f.Preu).ClientTemplate("#: kendo.toString(data.Preu, 'C2') # (" + 24. "# if (data.RefundFare == " + (short)fareType.Custom + ") { #Contracte" +25. "# } else if (data.RefundFare == " + (short)fareType.Standard + ") { #Standard" +26. "# } else if (data.RefundFare == " + (short)fareType.Premium + ") { #Premium" +27. "# } else if (data.RefundFare == " + (short)fareType.AdHoc + ") { #Puntual" +28. "# } else { #General" +29. "# } #)").EditorTemplateName("RefundFare").Width(350);30. columns.Template(@<text></text>)31. .ClientTemplate("<input type='checkbox' #= Generate ? checked='checked':'' # class='chkbx' />")32. .HeaderTemplate("<input type='checkbox' id='checkAllRecords' onclick='checkAll(this)' />")33. .Width(36);34. })35. .Editable(editable =>36. {37. if (User.IsInRole("Modify"))38. {39. editable.Mode(GridEditMode.InCell);40. }41. else42. {43. editable.Enabled(false);44. }45. })46. .Pageable(pageable => pageable.Refresh(true))47. .Scrollable()48. .Sortable()49. .Filterable()50. .DataSource(dataSource => dataSource51. .Ajax()52. .Batch(true)53. .PageSize(30)54. .Model(model =>55. {56. model.Id(a => a.DetailID);57. model.Field(f => f.CentreID).Editable(false);58. model.Field(f => f.ServiceID).Editable(false);59. model.Field(f => f.DataServei).Editable(false);60. model.Field(f => f.RefExt).Editable(false);61. model.Field(f => f.DocNum).Editable(false);62. model.Field(f => f.ProductorName).Editable(false);63. model.Field(f => f.CodFact).Editable(false);64. model.Field(f => f.CycleID).Editable(false);65. model.Field(f => f.Reference).Editable(false);66. model.Field(f => f.Quantitat).Editable(false);67. })68. .Events(e => e69. .Error(@<text>70. function (e) {71. onError(e, "refundables");72. }73. </text>)74. .RequestEnd(@<text>75. function (e) {76. onRefundRequestEnd(e);77. }78. </text>))79. .Sort(s => s.Add(f => f.DataServei).Descending())80. .Read("RefundRead", "Payments")81. .Update("RefundValidate", "Payments")82. )83. )
And for finish I show you code with view RefundFare with CurrencyTextBox control:
01.@using SGI2014.Models;02.@model object03. 04.<script type="text/javascript">05. var row = $(event.srcElement).closest("tr");06. var grid = $(event.srcElement).closest("[data-role=grid]").data("kendoGrid");07. var currentDataItem = grid.dataItem(row);08. 09. function onPreuChange() {10. @*var radios = document.getElementsByName("RefundFare");11. for (i = 0; i < radios.length; i++) {12. radios[i].checked = (radios[i].value == @((short)fareType.AdHoc));13. }*@14. @*var radio = $("input[value='@((short)fareType.AdHoc)']");15. radio.prop("checked", true);16. currentDataItem.RefundFare = @((short)fareType.AdHoc);*@17. currentDataItem.set('RefundFare', @((short)fareType.AdHoc));18. currentDataItem.set('Generate', true);19. grid.refresh();20. }21. 22. function onRefundFareClick(e) {23. //var ctb = $("#Preu").data("kendoNumericTextBox");24. if (e.value == @((short)fareType.AdHoc)) {25. //ctb.value("");26. //currentDataItem.Preu = 0;27. currentDataItem.set('Preu', 0);28. } else {29. $.ajax({30. cache: false,31. url: '@Url.Action("GetFarePrice", "Payments")',32. //data: { fare: e.value, detailID: getParentID() },33. data: { fare: e.value, detailID: currentDataItem.DetailID },34. success: function (received) {35. //ctb.value(received);36. //currentDataItem.Preu = received;37. currentDataItem.set('Preu', received);38. }39. })40. }41. currentDataItem.set('Generate', true);42. grid.refresh();43. }44. 45. //function getParentID() {46. // var row = $(event.srcElement).closest("tr");47. // var grid = $(event.srcElement).closest("[data-role=grid]").data("kendoGrid");48. // var currentDataItem = grid.dataItem(row);49. // return currentDataItem.DetailID;50. //}51.</script>52. 53.@(Html.Kendo().CurrencyTextBox()54. .Name("Preu")55. .HtmlAttributes(new { style = "width:100px" })56. .Events(e => e.Change("onPreuChange"))57.)58. 59.<input type='radio' name='RefundFare' value='@((short)fareType.Standard)' onclick="onRefundFareClick(this)">Standard60.<input type='radio' name='RefundFare' value='@((short)fareType.Premium)' onclick="onRefundFareClick(this)">Premium61.<input type='radio' name='RefundFare' value='@((short)fareType.Custom)' onclick="onRefundFareClick(this)">Contracte62.<input type='radio' name='RefundFare' value='@((short)fareType.AdHoc)' onclick="onRefundFareClick(this)">Puntual
Thanks in advance.
Xavier de la Rubia.