Telerik Forums
UI for ASP.NET MVC Forum
1 answer
241 views

When using TreeList widget with a simple model like this:

public class MyModel
{
     public int? Id {get;set;}
     public int? ParentId {get;set;}
     public string Name {get;set;}
}

...

@(Html.Kendo().TreeList<MyModel>().Name("treeList")
    .Toolbar(t=>t.Create())
    .Editable(e=>e.Mode("popup"))
    .DataSource(ds=>ds
          .Model(m=>
          {
               m.Id(f=>f.Id);
               m.ParentId(f=>f.ParentId);
               m.Field(f=>f.Name);
          })
         .Create(c=>c.Action("Create", "My"))
        )
        .Columns(c=>
        {
c.Add().Field(f=>f.Id);
c.Add().Field(f=>f.ParentId)
c.Add().Field(f=>f.Name)
        })
)

When filling the popup, there are no error, but the item is NOT inserted in the treeList. If I change the type of the Id and ParentId to non nullable, the problem is solved.

In your demo, the model seems to have nullable fields as Id and ParentId, but there are no demo of item creation. Is it a bug or something missing in my code?When using TreeList widget with a simple model like this:

public class MyModel
{
     public int? Id {get;set;}
     public int? ParentId {get;set;}
     public string Name {get;set;}
}

...

@(Html.Kendo().TreeList<MyModel>().Name("treeList")
    .Toolbar(t=>t.Create())
    .Editable(e=>e.Mode("popup"))
    .DataSource(ds=>ds
          .Model(m=>
          {
               m.Id(f=>f.Id);
               m.ParentId(f=>f.ParentId);
               m.Field(f=>f.Name);
          })
         .Create(c=>c.Action("Create", "My"))
        )
        .Columns(c=>
        {
c.Add().Field(f=>f.Id);
c.Add().Field(f=>f.ParentId)
c.Add().Field(f=>f.Name)
        })
)

When filling the popup, there are no error, but the item is NOT inserted in the treeList. If I change the type of the Id and ParentId to non nullable, the problem is solved.

In your demo, the model seems to have nullable fields as Id and ParentId, but there are no demo of item creation. Is it a bug or something missing in my code?

 

Regards

Alex Gyoshev
Telerik team
 answered on 29 Jan 2016
1 answer
237 views
 
 
 
 
@(Html.Kendo().Grid<AMCUpfrontTracker2.Models.AccountsViewModel>()
      .Name("kGrid")
      .Columns(columns =>
      {
          columns.Bound(c => c.AccountID).Visible(false);
          columns.Bound(p => p.Agency).ClientTemplate("#=Agency.AgencyName#").Width(220);
          columns.Bound(c => c.Advertiser).ClientTemplate("#=Advertiser.AdvertiserName#").Width(220);
          columns.Bound(c => c.AccountName).Width(220);
          columns.Bound(c => c.Net).ClientTemplate("#=Net.Network#").Width(200);
          //columns.Bound(c => c.BuyCode).ClientTemplate("#=BuyCode.BuyCode#").Width(100);
          columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
      })
       .ToolBar(toolBar =>
       {
           toolBar.Create();
       })
      .Editable(editable => editable.Mode(GridEditMode.InLine))
      .Scrollable()
      .Pageable(pageable => pageable
      .Refresh(true)
      .PageSizes(new List<object> { 10, 20, 50, "All" })
      .ButtonCount(5))
      .Sortable()
      .Filterable()
      .ColumnMenu()
      .HtmlAttributes(new { style = "height:600px;" })
      .DataSource(dataSource => dataSource
          .Ajax()
          .ServerOperation(false)
          .Events(events => events.Error("grid_error")) // Handle the "error" event
          .Events(events => events.RequestEnd("requestEndHandler"))
         .Model(model =>
         {
             model.Id(p => p.AccountID);
             model.Field(p => p.AccountID).Editable(false);
             model.Field(p => p.Agency).DefaultValue(
                ViewData["defaultAgency"] as AMCUpfrontTracker2.Models.AgencyViewModel);
             model.Field(p => p.Advertiser).DefaultValue(
                ViewData["defaultAdvertiser"] as AMCUpfrontTracker2.Models.AdvertiserViewModel);
             model.Field(p => p.Net).DefaultValue(
                ViewData["defaultNetwork"] as AMCUpfrontTracker2.Models.NetworkViewModel);
             //model.Field(p => p.BuyCode).DefaultValue(
             //   ViewData["defaultBuyCode"] as AMCUpfrontTracker2.Models.BuyCodesViewModel);
         })
 
          .Read(read => read.Action("Accounts_Read", "ManageAccounts").Data("additionalInfo"))
          .Create(create => create.Action("Accounts_Create", "ManageAccounts"))
          .Update(update => update.Action("Accounts_Update", "ManageAccounts"))
          .Destroy(destroy => destroy.Action("Accounts_Destroy", "ManageAccounts"))
      )

 

 

Filter option is working with columns not having clientTemplates like AccountName but not in others.

 
 
Dimiter Madjarov
Telerik team
 answered on 29 Jan 2016
1 answer
135 views

In synchronous mode, it's easy to take a server side action when all files are processed via foreach (var file in files), when it is completed. But how to do this in async mode? The server controller has no notion of the total number of files. And I don't see an Event fired when all the files are upload, although the control has the "Done" UI indication.

 

thanks, Tom

 
Dimiter Madjarov
Telerik team
 answered on 29 Jan 2016
2 answers
1.0K+ views

I'm creating a grid for a model that has child relationship that is not required.  The grid displays when the child has a value but if the child is null then I get a message that a value can't be null.  For example.   If my model is:

public class ProjectTypeViewModel
{
     [Column("ManpowerProjectTypeID")]
     public int ID { get; set; }

     [StringLength(50)]
     [Display(Name = "Project Type")]
     public string ProjTypeDesc { get; set; }

     [UIHint("ClientProjectType")]
     public ProjectTypeComboViewModel ParentProjectType { get; set; }
}

public class ProjectTypeComboViewModel
{
     [Column("ManpowerProjectTypeID")]
     public int ID { get; set; }

      [StringLength(50)]
      [Display(Name = "Project Type")]
      public string ProjTypeDesc { get; set; }

Then my grid looks like:

@(Html.Kendo().Grid<ManpowerForecast.Web.ViewModels.ProjectTypeViewModel>()
.Name("gridProjectType")
.Columns(columns =>
{
   columns.Bound(c => c.ProjTypeDesc).Width(200);
   columns.Bound(c => c.ParentProjectType).ClientTemplate("#=ParentProjectType.ProjTypeDesc#")
          .Width(150);
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.HtmlAttributes(new { style = "height: 550px" })
.Refresh(true)
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
.Model(model =>
{

     model.Id(prop => prop.ID);
     model.Field(b => b.ParentProjectType).DefaultValue(ViewData["defaultProjectTypes"] as ProjectTypeComboViewModel);
})
.Create(create => create.Action("CreateManpowerProjectTypes", "Manpower"))
.Read(read => read.Action("ReadManpowerProjectTypes", "Manpower"))
.Update(edit => edit.Action("UpdateManpowerProjectTypes", "Manpower"))
.Destroy(delete => delete.Action("DestroyManpowerProjectTypes", "Manpower"))
.PageSize(20)
)
)

 

this displays just fine as long as ParentProjectType has a value but if it is null I get an error in the browser consul that reads: ProjTypeDesc is null.  If I comment out all the lines that have to do with the ParentProjectType the grid will display the data but off course doesn't contain the parent project type field.  How do I indicate in the grid that the data isn't required or is nullable?

 

 

Viktor Tachev
Telerik team
 answered on 29 Jan 2016
1 answer
125 views

I am trying to bind a grid in the editor template that contains List<> and have the ability to add and edit this list I need to do this in multiple places so Any idea would help a lot.

Model:

public int AgencyId { get; set; }
public string AgencyName { get; set; }
public int AgencyNumber { get; set; }
public string TIN { get; set; }
public bool Incorp { get; set; }
public string Affiliat { get; set; }
public IList<AgencyLocation> AgencyLocationCollection 

 Cshtml

<individual Field edits>

Need a grid here that will show all the associate locations and allow add and edit

  @(Html.Kendo().Grid<AgencyLocation>()
.Name("Grid")
.EnableCustomBinding(false)
.BindTo(Model.AgencyLocationCollection)
.Columns(columns =>
{
columns.Bound(m => m.AddressShortString);
columns.Bound(m => m.AgencyLocationId);
})
)

 

 

 

 

Dimo
Telerik team
 answered on 29 Jan 2016
1 answer
176 views

I'm using a Kendo UI Grid in conjunction with two AutoComplete widgets.  Everything mostly works perfectly, however, if a user pages through the grid and then does a search using one of the AutoComplete widgets, the grid does not display the data.  The pager at the bottom of the grid is updated but the grid is blank.  The user must click on a page before the data is displayed.  I have not been able to find a setting to resolve this despite hours of Googling.  Here's the code for my grid: 

@(Html.Kendo().Grid(Model)
        .Name("grid")
        .Columns(columns =>
        {
            columns.Bound(a => a.EmployeeOI).Visible(false);
            columns.Bound(a => a.DepartmentOI).Visible(false);
            columns.Bound(a => a.LevelId).Width(60).Title("Level");
            columns.Bound(a => a.DepartmentName).Width(150).Title("Department");
            columns.Bound(a => a.EmployeeId).Width(60).Title("Emp");
            columns.Bound(a => a.BuyerName).Width(100).Title("Buyer Name");
            columns.Bound(a => a.MinAmount).Width(100).Title("Min Amt");
            columns.Bound(a => a.MaxAmount).Width(100).Title("Max Amt");
            columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
        })
        .ToolBar(toolbar => toolbar.Create())
        .Editable(editable => editable.Mode(GridEditMode.PopUp))
        .Pageable()
        .Sortable(s => s
            .AllowUnsort(false)
            .SortMode(GridSortMode.MultipleColumn))
    .Scrollable()
    .HtmlAttributes(new { style = "height:650px;, width:100%" })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Sort(x => x.Add(y => y.LevelId).Ascending())
        .Sort(x => x.Add(y => y.MaxAmount).Ascending())
        .ServerOperation(false)
        .PageSize(8)
        .Events(events => events.Error("error_handler"))
        .Read(read => read.Action("Read", "Home").Data("gridAddlData"))
        .Create(update => update.Action("EditingPopup_Create", "Home"))
        .Update(update => update.Action("EditingPopup_Update", "Home"))
        .Destroy(update => update.Action("EditingPopup_Destroy", "Home"))
      .Model(m =>
      {
          m.Id(i => i.Id);
          m.Id(i => i.EmployeeOI);
          m.Id(i => i.DepartmentOI);
          m.Field("LevelID", typeof(string));
          m.Field("EmployeeId", typeof(string));
          m.Field("BuyerName", typeof(string));
          m.Field("MinAmount", typeof(decimal));
          m.Field("MaxAmount", typeof(decimal));
          m.Field("DepartmentId", typeof(string));
      })
      )
    )

Radoslav
Telerik team
 answered on 29 Jan 2016
6 answers
235 views
We have a rather large project that uses the Telerik UI for ASP.NET AJAX tools.  We are looking to do our new work in this project using the UI for MVC controls.  Are there any issues mixing these two Telerik toolsets in a single project?  We cannot seem to find any information on this online.
Dan
Top achievements
Rank 1
 answered on 28 Jan 2016
1 answer
118 views

I'm working through the Grid HtmlHelper extension example in the Telerik documentation. I get red squiggly line with 2 errors.Unknown method and unknown type. When i debug I get " CS0246: The type or namespace name 'KendoGridServerBinding' could not be found (are you missing a using directive or an assembly reference?)" I have the add namespace in web.config and the kendo.mvc is referenced in my project. I have attached the code and error.

 

Patrick | Technical Support Engineer, Senior
Telerik team
 answered on 27 Jan 2016
7 answers
776 views

I've downloaded and I'm running the kendoui-northwind-dashboard-master project.

In the OrdersController I've set a breakpoint on the Orders_Read Action.

I run the application in Debug and navigate to the Products & Orders page.

In Locals I drill down into orders/Results View and it returns 830 records.

I then set the Order Date filter to 'Is after 4/22/1998'.

In Locals I again drill down into orders/Results View and it still returns 830 records.

The view properly filters and returns 34 items.

1. Is Lazy Loading being used in this Grid?

2. If so how do I verify only the filtered records are returned from the DB query?

3. If Lazy loading is not being used in this project could you point me to or supply me with one that is?

 

I need to be able to build a project that scales properly so that I can return a subset of records rather than the thousands of records that will be in the database.

 

 

 

 

 

Viktor Tachev
Telerik team
 answered on 27 Jan 2016
7 answers
578 views

I've found a strange behaviour thats happening when i've got a grouped multi select list (again virtualised as asked in the other thread "Multi select change event not firing") and try to select an item.

 

The grouping function itself seems fine, as i can see the different items are under their respective headers, however when i try to select an item from the drop down list, a completely different item is selected instead of the selected item (most of the time it seems to be reversed, e.g. items 1, 2, 3, 4 showing on grouped list. Select item 1, and item 2 gets selected. Select item 2, item 1 gets selected. Sometimes the correct item is selected).

 

If there is no grouping applied, the selected value is always correct.

Alexander Popov
Telerik team
 answered on 27 Jan 2016
Narrow your results
Selected tags
Tags
Grid
General Discussions
Scheduler
DropDownList
Chart
Editor
TreeView
DatePicker
Upload
ComboBox
MultiSelect
ListView
Window
TabStrip
Menu
Installer and VS Extensions
Spreadsheet
AutoComplete
TreeList
Gantt
PanelBar
NumericTextBox
Filter
ToolTip
Map
Diagram
Button
PivotGrid
Form
ListBox
Splitter
Application
FileManager
Sortable
Calendar
View
MaskedTextBox
PDFViewer
TextBox
Toolbar
MultiColumnComboBox
Dialog
DropDownTree
Checkbox
Slider
Switch
Notification
ListView (Mobile)
Pager
Accessibility
ColorPicker
DateRangePicker
Wizard
Security
Styling
Chat
MediaPlayer
TileLayout
DateInput
Drawer
SplitView
Barcode
ButtonGroup (Mobile)
Drawer (Mobile)
ImageEditor
RadioGroup
Sparkline
Stepper
TabStrip (Mobile)
GridLayout
Template
Badge
LinearGauge
ModalView
ResponsivePanel
TextArea
Breadcrumb
ExpansionPanel
Rating
ScrollView
ButtonGroup
CheckBoxGroup
NavBar
ProgressBar
QRCode
RadioButton
Scroller
Timeline
TreeMap
TaskBoard
OrgChart
Captcha
ActionSheet
Signature
DateTimePicker
AppBar
BottomNavigation
Card
FloatingActionButton
Licensing
Localization
MultiViewCalendar
PopOver (Mobile)
Ripple
ScrollView (Mobile)
Switch (Mobile)
PivotGridV2
FlatColorPicker
ColorPalette
DropDownButton
AIPrompt
PropertyGrid
ActionSheet (Mobile)
BulletGraph
Button (Mobile)
Collapsible
Loader
CircularGauge
SkeletonContainer
Popover
HeatMap
Avatar
ColorGradient
CircularProgressBar
SplitButton
StackLayout
TimeDurationPicker
Chip
ChipList
DockManager
ToggleButton
Sankey
OTPInput
ChartWizard
SpeechToTextButton
InlineAIPrompt
TimePicker
StockChart
RadialGauge
ContextMenu
ArcGauge
AICodingAssistant
+? more
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Iron
Iron
Andrey
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Iron
Iron
Andrey
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?