CurrencyTextBox and Mozilla Firefox

2 posts, 0 answers
  1. Xavier
    Xavier avatar
    28 posts
    Member since:
    Dec 2010

    Posted 19 Aug 2015 Link to this post

    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.            else
    42.            {
    43.                editable.Enabled(false);
    44.            }
    45.        })
    46.        .Pageable(pageable => pageable.Refresh(true))
    47.        .Scrollable()
    48.        .Sortable()
    49.        .Filterable()
    50.        .DataSource(dataSource => dataSource
    51.            .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 => e
    69.                .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 object
    03. 
    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)">Standard
    60.<input type='radio' name='RefundFare' value='@((short)fareType.Premium)' onclick="onRefundFareClick(this)">Premium
    61.<input type='radio' name='RefundFare' value='@((short)fareType.Custom)' onclick="onRefundFareClick(this)">Contracte
    62.<input type='radio' name='RefundFare' value='@((short)fareType.AdHoc)' onclick="onRefundFareClick(this)">Puntual

     

     Thanks in advance.

     

     

    Xavier de la Rubia.

  2. Petyo
    Admin
    Petyo avatar
    2438 posts

    Posted 21 Aug 2015 Link to this post

    Hello Xavier,

    this looks strange. From what I see, most likely the widget did not instantiate for some reason, however, I can't be certain about that. Did you check the console for JavaScript errors? Furthermore, can you replicate the problem in a Dojo or a sample project? We will investigate it and advise you further. 

    Regards,
    Petyo
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  3. UI for ASP.NET MVC is VS 2017 Ready
Back to Top