Telerik Forums
UI for ASP.NET MVC Forum
6 answers
117 views
Dear KendoUI Team!
In one of my Views I alwas get a javascript error when I leave the focus of the Dropdownlist.

The error occurs in parseJSON in this line:
{return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)}

The Model looks like this:
[Required]
        [LocalizedDisplayName("Language")]
        public int PreferredLanguageId { get; set; }

And the cshtml is here:

div class="type-text">                            
                            @(Html.Kendo().DropDownListFor(m => m.PreferredLanguageId)
                            .Name("PreferredLanguageId")
                            .SelectedIndex(Model.PreferredLanguageId)
                            .BindTo(LeoHelper.GetLanguages())
                            .DataTextField("Text")
                            .DataValueField("Value")
                            )
                        </div>

Although the javascript Exception is thrown, the value is correctly saved.

brgds
Malcolm Howlett
Christopher
Top achievements
Rank 1
 answered on 08 Jul 2013
6 answers
280 views
Hello,

I have an editable grid and added a filter dropdown on the toolbar

       .ToolBar(c=>
        {
            c.Template(Html.Kendo().DropDownList()
               .Name("tb_factory_list")
               .DataTextField("factoryname")
               .DataValueField("factoryid")
               .Events(e => e.Change("onChange"))
               .SelectedIndex(0)
               .DataSource(source =>
                   {
                       source.Read(read =>
                           {
                               read.Action("GetFactories", "Home");
                           });
                   })
               .HtmlAttributes(new { style = "width:300px;float:right" })
               .ToHtmlString());
        })


problems :

1) How do I get the 'add new item' button back  ?
.ToolBar(tb => { tb.Create();  })

2) the width of the dropdown is whatever the width of the initial displayed item.
I had to manually force the dropdown to be wider to accomodate the widest item in the dropdown (see above 300px)
Is that normal ? can the dropdown resize to the widest item in the dropdown ?

3) when the page is opened, the dropdown displays the first item, but the onchange event is not called.
So initially, the results are not filtered by whatever the dropdown shows.
after I select another item in the dropdown, then the onchange is fired and filtering happens.
How can I filter correctly when the page is first loaded ?

Thanks
Marcel



Dongfen
Top achievements
Rank 1
 answered on 05 Jul 2013
1 answer
103 views

Questions in the image in attachemnt since I get a "invalid post content" message.


Iliana Dyankova
Telerik team
 answered on 05 Jul 2013
1 answer
148 views
Hello,

I am using Kendo 2013.1.514.340 with asp.net mvc.

I am sending the Json to the grid that is generated from the following data structure:
I have two entities, Parent and Child.  A Parent can have n Children.  In this case a single Parent has two Children.  

I use NewtonSoft to serialize the Json with the following settings:

SerializerSettings = new JsonSerializerSettings
{
    ContractResolver = new DefaultContractResolver
    {
        IgnoreSerializableAttribute = true,
        IgnoreSerializableInterface = true
    },
    PreserveReferencesHandling = PreserveReferencesHandling.Objects,
    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
};
When I have the case of a single parent with a single child all works fine.

The following Json is generated for a single parent that has two children:

{
  "$id": "1",
  "Data": [
    {
      "$id": "2",
      "Aktiv": false,
      "AktualisiertAm": "2013-05-16T11:05:20.273",
      "AktualisiertVon": "abascore",
      "Bemerkung": "",
      "Bezeichnung": "Child",
      "ErzeugtAm": "2013-05-16T11:05:20.273",
      "ErzeugtVon": "abascore",
      "Id": "615cba40-7c17-4a98-9371-443310947b81",
      "ParentId": "c6113c45-bd23-44d3-bfa2-470f647adc75",
      "Nr": 1,
      "Rowverion": "AAAAAAAAorQ=",
      "Sprache": "de-de",
      "Status": 0,
      "Parent": {
        "$id": "3",
        "Branche": "",
        "MaAnzahl": 2,
        "PoG": 1,
        "UnternehmenGroesse": 0,
        "Child": [
          {
            "$ref": "2"
          },
          {
            "$id": "4",
            "Aktiv": false,
            "AktualisiertAm": "2013-07-03T18:31:00.953",
            "AktualisiertVon": "abascore",
            "Bemerkung": "",
            "Bezeichnung": "Child2",
            "ErzeugtAm": "2013-07-03T18:31:00.953",
            "ErzeugtVon": "abascore",
            "Id": "6662074d-2682-4c2d-a4fc-c01ae9eb7cfc",
            "ParentId": "c6113c45-bd23-44d3-bfa2-470f647adc75",
            "Nr": 2,
            "Rowverion": "AAAAAAACOlE=",
            "Sprache": "de-de",
            "Status": 0,
            "Parent": {
              "$ref": "3"
            }
          }
        ],
        "AktualisiertAm": "2013-05-16T11:05:05.333",
        "AktualisiertVon": "abascore",
        "Bemerkung": "",
        "Bezeichnung": "Parent",
        "Descriminator": "MAND",
        "Email": "Parent@masdnad.asda",
        "ErzeugtAm": "2013-05-16T11:05:05.333",
        "ErzeugtVon": "abascore",
        "Id": "c6113c45-bd23-44d3-bfa2-470f647adc75",
        "Logo": "",
        "Mobil": "",
        "Name0": "Parent",
        "Name1": "",
        "Nr": 1,
        "Ort": "München",
        "Plz": "12345",
        "Postfach": "",
        "Rowverion": "AAAAAAAAorI=",
        "SatzQuelle": null,
        "Staat": "Parentland",
        "Strasse": "Parentenstrasse",
        "Telefon": "",
        "Website": "",
        "Ansprechpartners": []
      }
    },
    {
      "$ref": "4"
    }
  ],
  "Total": 2,
  "AggregateResults": null,
  "Errors": null
}


This leads to the following error:
Uncaught TypeError: Cannot read property 'Bezeichnung' of undefined
(anonymous function)
T.extend._rowsHtml kendo.all.min.js:18
T.extend.refresh kendo.all.min.js:18
b.isFunction.i jquery.min.js:3
i.extend.trigger kendo.all.min.js:9
nt.extend._process kendo.all.min.js:11
nt.extend.success kendo.all.min.js:11
b.isFunction.i jquery.min.js:3
n.success kendo.all.min.js:11
c jquery.min.js:3
p.fireWith jquery.min.js:3
k jquery.min.js:5
r

I would really appreciate any about this issue!

Best regards

Vladimir Iliev
Telerik team
 answered on 05 Jul 2013
3 answers
190 views
Hello!
I use serializeArray  for form.
But this function doesn't return object, which have disabled fields
I use:
@(Html.Kendo().IntegerTextBoxFor(m => m)
      .Enable(false)
      .Spinners(false).....
But if I use:
@(Html.Kendo().IntegerTextBoxFor(m => m)...
All good.
Question: Need I get this(disaled) field by $(..[name="...]) or that I can do?
Daniel
Telerik team
 answered on 05 Jul 2013
1 answer
80 views
Hi

I have been look at Kendo a few days and now trying to move into to a Production alike environment (Testing).

When i start moving into the server (using Web Deploy), and browse to the page with the Kendo control. It dont render right.ex. for a grid It only show the table and text, but all the functionality is gone. I also try with a DatePicker here it only show a whitebox with text?  Looks like im missing some scripts files???

Lennart
Dimo
Telerik team
 answered on 05 Jul 2013
1 answer
111 views
Consider the following cshtml file.  I have changed the style for the tab to hide the tabstrip item headers and added previous/next buttons to the page to simulate a wizard.  If I don't turn off animation for the tabstrip and the user double clicks on the previous or next button the contents of two tabs will be shown stacked on top of one another.  Is there anything I can do about this or is this a bug?

@{
    ViewBag.Title = "About";
}
<hgroup class="title">
    <h1>@ViewBag.Title.</h1>
    <h2>@ViewBag.Message</h2>
</hgroup>
<button id="Previous" class="toggleTab k-button" onclick="moveToTab(-1);return true;">
    Previous</button>
<button id="Next" class="toggleTab k-button" onclick="moveToTab(1);return true;">
    Next</button>
@(Html.Kendo().TabStrip()
          .Name("tabstrip")
          .Animation( false)
          .Items(tabstrip =>
          {
              tabstrip.Add().Text("Paris")
                  .Selected(true)
                  .Content(@<text>
                                Paris
                            </text>);

              tabstrip.Add().Text("New York")
                  .Content(@<text>
    New York
</text>);

              tabstrip.Add().Text("Moscow")
                  .Content(@<text>
Moscow
</text>);

              tabstrip.Add().Text("Sydney")
                  .Content(@<text>
Sydney
</text>);
    tabstrip.Add().Text("Fort Worth")
                  .Content(@<text>
Fort Worth
</text>);
          })
    )
<script>

    var currentIndex = 0;
    var maxIndex;
    var tabStrip;
    
    function moveToTab(increment) {

        if (increment > 0) {
            if (currentIndex < maxIndex) {
                currentIndex++;
                tabStrip.select(currentIndex);
            }
        } else {
            if (currentIndex > 0) {
                currentIndex--;
                tabStrip.select(currentIndex);
            }
        }

    }

    $(document).ready(function () {

        tabStrip = $("#tabstrip").data("kendoTabStrip");
        maxIndex = tabStrip.items().length - 1;
    });
</script>

<style scoped>
    #tabstrip ul.k-tabstrip-items {
    display: none;
}
</style>
Vladimir Iliev
Telerik team
 answered on 04 Jul 2013
4 answers
163 views
I have a column chart which does not show the legend even though I have set legend.Visible to true. If I uncomment the .Group line commented in the code below, then the legend starts showing, but unfortunately it displays the default colors rather than those I have customised with m => m.UiColor  
Sorry I am getting "Invalid post content." when trying to paste the code in this post so I have attached it as an image.
Iliana Dyankova
Telerik team
 answered on 04 Jul 2013
7 answers
631 views
I have tried numerous solutions I have found googling this, but was unable to find anything that worked for me.
Basically, I have a grid that uses inline editing (with a few foreign key columns), and I need to set some fields as editable based on the value in another field. I have attached a screen print of the grid..
I would like the last column to always be editable, but the other columns should only be editable when the last column is not = 'LOGGED'.

The following is the definition of my partial view that contains the grid - using jQuery dialog to display as popup  ..
01.<div id="editLocalEventModal" title="Edit Local Vessel" style="overflow: scroll; display: none;">
02.    <form method="post" id="formEditLocalVessel">
03. 
04.        <div style='text-align: center; background: gray; color: #ffffff; font-size: 15px; height: 22px; width: 100%;'>General Event Information</div>
05.        <div style='margin: 5px 5px 0px 5px'>
06.            <label for='vesselNum'>Vessel #: </label>
07.            <input id='vesselNum' style='width:60px' type='text' disabled value='@ViewBag.VesselNum' />  
08.            <label for='vesselName'>Vessel Name: </label>
09.            <input id='vesselName' style='width:350px' type='text' disabled value='@ViewBag.VesselName' />  
10.            <input type='checkbox' id='AgentCalled' @ViewBag.AgentCalled/><label for='AgentCalled'>Agent Called</label>  
11.            <input type='checkbox' id='Quarantine' @ViewBag.Quarantine/><label for='Quarantine'>Quarantine</label>  
12.            <input type='checkbox' id='COTP' @ViewBag.COTP/><label for='COTP'>COTP</label>  
13.            <input type='checkbox' id='Announce' @ViewBag.Announce/><label for='Announce'>Announce</label>
14.        </div>
15.        <br />
16.        <div style='text-align: center; background: gray; color: #ffffff; font-size: 15px; height: 22px; width: 100%;'>Activity Details</div>
17.        <div>
18.            @(Html.Kendo().Grid((IEnumerable<Maris.Domain.VEGetAttrDetailForVEidLocal_Result>)ViewBag.Fields)
19.                                                        .Name("editLocalEventDetail")
20.                                                        .HtmlAttributes(new { style = "width:1100px; margin:0;" })
21.                                                        .DataSource(dataSource => dataSource
22.                                                                        .Ajax()
23.                                                                        .Batch(true)
24.                                                                        .ServerOperation(false)
25.                                                                        .PageSize(200)
26.                                                                        .Model(model => { model.Id(d => d.VEDDId);
27.                                                                                         //model.Field(d => d.VEDADesc);
28.                                                                                         model.Field(p => p.VEDDId).Editable(false);
29.                                                                                         model.Field(p => p.PortID);
30.                                                                                         model.Field(p => p.VEDDDate);
31.                                                                                         model.Field(p => p.VEDDTime);
32.                                                                                         model.Field(p => p.VEDDComment);
33.                                                                                         model.Field(p => p.VEDStatusID);
34.                                                                        })
35.                                                                        //.Read(read => read.Action("EditingCustom_Read","EventSummary"))
36.                                                                   )
37.                                                        .ToolBar(toolBar =>
38.                                                            {
39.                                                                //toolBar.Save();
40.                                                                toolBar.Create();
41.                                                            })
42.                                                        .Columns(columns =>
43.                                                        {
44.                                                            columns.ForeignKey(d => d.VEDAId, (System.Collections.IEnumerable)ViewData["AttrDropDown"], "VEDAId", "VEDADesc")
45.                                                                   .Title("Attribute").Width(200);
46.                                                            columns.ForeignKey(d => d.PortID, (System.Collections.IEnumerable)ViewData["PortsListsDropDown"], "PortId", "PortShortName").Title("Port").Width(80);
47.                                                            columns.Bound(d => d.VEDDDate).Format("{0:MM/dd/yyyy}").Title("Date").Width(100).EditorTemplateName("Date");
48.                                                            columns.Bound(d => d.VEDDTime).Format("{0:HH:mm}").Title("Time").Width(100).EditorTemplateName("Time");
49.                                                            columns.Bound(d => d.VEDDComment).Title("Comments").Width(300);
50.                                                            columns.ForeignKey(d => d.VEDStatusID, (System.Collections.IEnumerable)ViewData["StatusDropDown"], "VEDStatusID", "VEDStatusAbbr").Title("Status").Width(80);
51.                                                        })
52.                                                        .Scrollable(scr => scr.Height(400))//will be overriden in splitter layoutchange event.
53.                                                        .Resizable(resize => resize.Columns(true))
54.                                                        .Events(events => events.Edit("onEdit"))  // .Change("onChange")
55.                                                        .Editable(editable => editable.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))
56.                                    )
57.        </div>
58.        <br />
59.        <div style='text-align: center; background: gray; color: #ffffff; font-size: 15px; height: 22px; width: 100%;'>Comments</div>
60.        <div>
61.            <textarea id='txtComment' rows='3' style='width: 99.5%; border: 0'>@ViewBag.Comment</textarea>
62.        </div>
63.        <div style="text-align: center;">
64.            <input type="button" id="btnUpdate" value="Save" />  <input type="button" id="btnClose" value="Close" />
65.        </div>
66.    </form>
67.</div>
68. 
69.<script>
70. 
71.    function onEdit(arg) {
72.        alert("hello");
73.        // suggestions..
74.    }
75. 
76. 
77.</script>
Daniel
Telerik team
 answered on 03 Jul 2013
1 answer
296 views
Hi,

I have a simple page with a droplist and a chart.  When selecting an item of the droplist, I update the chart with new values.  The new chart can have different number of categories.  On initial load the chart displays correctly with all the categories legend.  When selecting a different element from the droplist, the chart updates correctly but the categories legend does not.

For example, if the original chart had 5 categories and the selected item has 4, the chart still shows 5 categories where the 5th category is empty (no graph) but the 5th category legend still shows.  Whereas if the selected category has more series then the original, the chart displays correctly the additional categories but the the category legend is blank.  Somehow the category legend does not change. 

Using kendo version 2013.1.514.
Manufacturers @(Html.Kendo().DropDownListFor(m => m.MfgList)
                    .Name("mfgList")
                    .DataTextField("Text")
                    .DataValueField("Value")
                    .BindTo(Model.MfgList)
                    .HtmlAttributes(new { style = "width:200px;margin-right:10px;" })
                    .Value(Model.selectedMfgId)
                    .Enable(true)
                    .Events(e => e.Change("ReloadGraph"))
                )
<div class="chart-wrapper">
    @(Html.Kendo().Chart(Model.graphData)
        .Name("chart")
        .Title(Model.Title)
        .Legend(legend => legend
            .Position(ChartLegendPosition.Bottom)           
        )
        .SeriesDefaults(seriesDefaults =>
            seriesDefaults.Column().Stack(true)         
        )
        .Series(series =>
            {
                series.Column(m => m.Series1).Name(Model.Series1Label).Color("#f3ac32");
                series.Column(m => m.Series2).Name(Model.Series2Label).Color("#eda6a6");
            }
        )
        .CategoryAxis(axis => axis
            .Visible(true)
            .Categories(m => m.Categories)
            .MajorGridLines(lines => lines.Visible(false))
            .Labels(labels=>labels.Rotation(-90))
        )
        .ValueAxis(axis => axis           
            .Numeric()
            .Labels(labels => labels.Format("{0}%"))
            .Max(100)
            .Line(line => line.Visible(false))
            .MajorGridLines(lines => lines.Visible(true))
        )
        .Tooltip(tooltip => tooltip
            .Visible(true)
            .Template("#= dataItem.Tooltip #")
        )   
        .HtmlAttributes(new { @style = "Width:400px%;" })
    )
</div>
<script type="text/javascript">   
    function ReloadGraph() {
        var mfgId      = $('#mfgList').val();
        var schoolYear = $('#schoolYearList').val();
        $.ajax({
            type: "POST",
            async: true,
            data: "{'mfgId':'" + mfgId + "','schoolYear':'" + schoolYear + "'}",
            url: '@Url.Action("LoadGraphData", "Commodity")',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: ReloadGraph_ajaxCallSucceed,
            failure: ajaxCallFailed
        });
    }
    function ReloadGraph_ajaxCallSucceed(response) {
        $('#chart').data("kendoChart").dataSource.data(response.graphData);
    }
    function ajaxCallFailed(response) {
        alert("Ajax call Failed ");
    }
</script>
Thanks,
Iliana Dyankova
Telerik team
 answered on 03 Jul 2013
Narrow your results
Selected tags
Tags
+? more
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?