Telerik Forums
UI for ASP.NET MVC Forum
2 answers
877 views
I am using json for comment on post where i use kendo ui editor for summary. on success json i am trying to clear editor value by jquery like $('#editor').val(' ');
its not working.If i remove kendo editor its working fine. please help.
Kris Nobels
Top achievements
Rank 2
 answered on 17 Jun 2013
1 answer
110 views
Hi:

Yesterday I downloaded  Kendo UI for a trial.  I was able to install without any errors that I could see, but when I try to run the demo in VS2010 SP1 I  have the following issues:
 
1: Message at start: "Attaching the script debugger to process ... iexplore.exe on machine ... failed.  A debugger is already attached.  There are no other VS or Dev Server instances running.  This error is not crucial as I can proceed with the demos.

2. When I navigate to the Treeview with remote data demo, the only thing I see above the sources after delay is "Request Failed" with a retry button.

3.  It appears some of the sources are missing including these references from Index.cshtml:
<link href="@Url.Content("~/Content/shared/suite.css")" rel="stylesheet">v
<a href="@(Url.RouteUrl("RazorDefault", new { controller = "Suite", suite = "web" }))" class="imgPlate"><img src="@Url.Content("~/Content/shared/demos-web.png")" /></a>  (both the class and the png are missing.  In fact the Content folder is empty.)

4. In the grid binding to local data at line 3 in  c:\Program Files (x86)\Telerik\Kendo UI for ASP.NET MVC Q1 2013\wrappers\aspnetmvc\Examples\Areas\razor\Views\web\grid\local_data.cshtml, the code  @(Html.Kendo().Grid(Model)... gets a "The system cannot find the file specified" error.

Except for the first item, the errors are the same whether I start in VS or just click on the demo link in the  windows menus. 

The simpler examples mostly work, but what I need Kendo UI for is databinding against remote data, mostly with the grid and treeview, so I really need working examples of these,.  It appears that the demo that comes in the Kendo MVC MSI has not been properly QAed.  Or possibly there is some other cause on my machine.  Is there another source of these demos that I can try?  or can you help me resolve these issues?

Thanks,

Terry






Atanas Georgiev
Telerik team
 answered on 17 Jun 2013
1 answer
126 views
Hi,

I have a dropdownlistfor that uses templates to display an image for each dropdown entry

I am having trouble retrieving the correct data.

   @(Html.Kendo().DropDownListFor(model => model.Image0Id)
                    .DataSource(source =>
                    {
                        source.Read(read =>
                        {
                            read.Action("GetImageIds", "Home");
                            read.Type(HttpVerbs.Post);
                        });
                    })
                    .Template("<img src='" + @Url.Action("GetImage", "Home", new { imageId = "#=data#"}) + "' width='128' height ='51'/>")
                    .OptionLabel("None")
                    .AutoBind(true)
                )

The #=data# is actually returning my ViewModel so when pass value to GetImage() I have a problem.
If I replace #=data# with say the number 2, the template works and fetches my image with id of 2.
If I insert some javascript #{alert(data)#} to alert me of the data values returned by GetImageIds() it returns the expected values.

I am using this in a similar scenario elsewhere where my template is as follows:
.Template("<img src='" + @Url.Content("~/Images/Banners/#=data#") + "' width='128' height ='51'/>")

This works perfectly.

Anybody have any ideas here?
 
John
Top achievements
Rank 1
 answered on 17 Jun 2013
3 answers
337 views
Hi,

I have two kendo grids which needs to be placed side by side (Both the grids uses same controller method).

My requirements.

1. Have to load >50000 rows(shouldn't take much time to load).
2. Scrolling should be in sync.
3. Paging should not be applied.
4. Column width should be auto.
5. Row height should be same for both the grids so that scrolling make sense.

Please share a demo on this.
Dimo
Telerik team
 answered on 17 Jun 2013
8 answers
1.2K+ views
I'm creating a Kendo.Mvc.UI.Menu in a Html Helper.  If the current controller/action matches the menu item then i set Selected to true. However, when the menu gets rendered to the page the current menu item is not selected.  Is there an init or onload event that is ignoring or overriding the Selected property?  It seems to only effect the current controller/action, if i set other menu items to Selected = true, they will stay selected.

Kendo.Mvc.UI.Menu menu = Kendo.Mvc.UI.HtmlHelperExtension.Kendo(helper).Menu();
menu.Name = "MainMenu";
  
IList<MenuItem> items = new List<MenuItem>();
  
items.Add(new MenuItem { Text = "Dashboard", Action = "Index", Controller = "Dashboard" });
items.Add(new MenuItem { Text = "Certificates", Action = "Index", Controller = "Certificates" });
  
UrlHelper Url = new UrlHelper(helper.ViewContext.RequestContext);
string controller = helper.ViewContext.RouteData.GetRequiredString("controller");
  
foreach (MenuItem item in items)
{
      menu.Items.Add(new Kendo.Mvc.UI.MenuItem { Url = Url.Action(item.Action,item.Controller),Text = item.Text, Selected = (item.Controller == controller)});
}
  
return new MvcHtmlString(menu.ToHtmlString());

Sorry, still transitioning from Telerik.Mvc...

Thanks,
Chris
Kendo MVC Version: v4.0.30319
Eric
Top achievements
Rank 1
 answered on 16 Jun 2013
4 answers
570 views
I can't seem to get remote validation to work in my popup edit window.  Normal validation ([Required] etc) seems to work fine, but the remote call to the JsonResult method isn't working.  In a plain MVC view for the same model the remote validator works as expected.

Here is the grid (most irrelevant columns removed)
@(Html.Kendo().Grid<UserModel>()
      .Name("Users")
      .ToolBar(commands => { commands.Create().Text("Create new User"); })
      .Columns(columns =>
      {
          columns.Bound(o => o.uidIdentity).Hidden();
          columns.Bound(o => o.UserName).Title("Users Name").Sortable(true).Filterable(true).Width(200)
              .HeaderHtmlAttributes(new { style = "text-align:center;align=center" }).HtmlAttributes(new { style = "text-align:center;align=center" });
          columns.Bound(o => o.Email).Title("Email Address ").Sortable(true).Filterable(true).Width(175)
              .HeaderHtmlAttributes(new { style = "text-align:center;align=center" }).HtmlAttributes(new { style = "text-align:center;align=center" });
 
      })
      .Events(events => events.DataBound("UserGrid_DataBound").Edit("UserGrid_edit"))
      .ClientDetailTemplateId("roleTemplate")
      .Sortable()
      .Editable(editing =>
          editing.Mode(GridEditMode.PopUp).Window(w => w.HtmlAttributes(new { })))
      .DataSource(dataSource => dataSource
        .Ajax()
        .Events(e => e.Error("error_handler"))
        .Read("_GetTpaUser", "User")
        .Create("_InsertUser", "User")
        .Update("_EditUser", "User")
        .Destroy("_DeleteUser", "User")
        .Model(model => model.Id(o => o.UserName))
        )
      .Filterable()
      .Scrollable(scroll => scroll.Enabled(true).Height(500))
      .Resizable(resize => resize.Columns(true))
      .Pageable(pager => pager.PageSizes(true))
)

Here is the controller JsonResult:

public JsonResult UserNameExists(string UserName)
{
    AccountRepository _repository = new AccountRepository();
    if (!(_repository.CheckUserNameExists(UserName)))
        return Json(true, JsonRequestBehavior.AllowGet);
    else
        return Json(string.Format("User name: {0} is already in use.", UserName), JsonRequestBehavior.AllowGet);
 
}

Here is the model (irrelevant fields removed):

public class UserModel
    {
        #region Constructor
        public UserModel()
        {
            
        }
        #endregion
        private AccountRepository _reposAcct = new AccountRepository();
        private spGetUserProfileResult _UserProfile = new spGetUserProfileResult();
 
        public Guid UserGuiD { get; set; }
        public int UserID { get; set; }
        [Required(ErrorMessage = "First Name Required")]
        [DisplayName("First Name:")]
        public string FirstName
        {
            get
            {
                return _UserProfile.FirstName;
            }
            set
            {
                _UserProfile.FirstName = value;
            }
        }
        [Required(ErrorMessage = "Last Name Required")]
        [DisplayName("Last Name:")]
        public string LastName
        {
            get
            {
                return _UserProfile.LastName;
            }
            set
            {
                _UserProfile.LastName = value;
            }
        }
 
      
        
        [Required(ErrorMessage = "User Name Required")]
        [Remote("UserNameExists", "AddUserLogin", "Administration")]
        [DisplayName("User Name:")]      
        public string UserName { get; set; }
        [Required(ErrorMessage = "Email Address Required")]
        [ValidateEmail(ErrorMessage = "A valid email address is required")]
        [DataType(DataType.EmailAddress)]
        [DisplayName("Email Address:")]
        public string Email { get; set; }
}

This identical model works fine in a standard scaffold generated view.  Any ideas?
Henrik
Top achievements
Rank 1
 answered on 16 Jun 2013
4 answers
634 views
Hi,
I have put in a general error handling to handle exceptions and authorisation errors for all Ajax calls, both Kendo and my api. I send back status 500 of exception and 401, Forbidden, or 403, Unauthorized, for authorisation errors.

The problem is I do not seem to be able to prevent the dataSource from updating the display if I get a non-200, OK, response. Looking at the code in Chrome it does not call the function associated with 'databinding' on line 13 of the code below.
01.function kendoGridErrorHandler(args) {
02.    if (args.errors == undefined) {
03.        if (args.xhr.status == 403) {
04.            updatePrimaryMessage("You are not authorised to carry out that operation.", true);
05.        } else if (args.xhr.status == 401) {
06.            updatePrimaryMessage("You need to be logged in to carry out that operation.", true);
07.        } else if (args.xhr.status == 500) {
08.            updatePrimaryMessage("The operation did not complete because of an error.", true);
09.        } else {
10.            updatePrimaryMessage("There was problem. Please refresh the screen.", true);
11.        }
12.        $('#PrimaryKGrid').data().kendoGrid.one('dataBinding', function(e) {
13.            e.preventDefault();
14.        });
15.    } else {
16.        //error means Ajax error response. customerror means Kendo error response
17.        var grid = $('#PrimaryKGrid').data("kendoGrid");
18.        grid.one("dataBinding", function(e) {
19.            e.preventDefault(); // cancel grid rebind if error occurs
20.            //We have formatted errors to display
21.            for (var error in args.errors) {
22.                showMessage(grid.editable.element, error, args.errors[error].errors);
23.            }
24.        });
25.    }
26.}
Can you suggest what I have done wrong?

Thanks in advance.
Jon Smith
Top achievements
Rank 1
 answered on 14 Jun 2013
3 answers
763 views
I am migrating an application from release 2012.3.1114 to release 2013.1.319.  Previously, I was able to apply HtmlAttributes on columns in this manner:
@(Html.Kendo().Grid<ToolListItemView>().Name("texListGrid")
    .Columns(columns => {
        columns.Bound(m => m.ToolId);
        columns.Bound(m => m.Description).HtmlAttributes(new { style = "font-size: 1.3em;" });
        columns.Bound(m => m.LastModified);
        columns.Bound(m => m.ConditionName);
        columns.Bound(m => m.LocationName);
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("ToolsRead", "List").Data("listParams"))
    )
)
With release 2013.1.319, an "invalid template" error is generated from the above code.  If I change HtmlAttributes to HeaderHtmlAttributes, no errors are generated and the style is applied to the column header (i.e. the format of the HtmlAttributes isn't a problem).  I did verify that I could use HtmlAttibutes on a column with an @class parameter successfully, which is the correct way of applying styles.  I guess I'm wondering if this capability (local CSS styling via HtmlAttributes) was intentionally removed, or if I'm doing something wrong?

Note: Moved from Kendo UI Web forum.
Dimo
Telerik team
 answered on 14 Jun 2013
1 answer
108 views
I have read several tutorials and have a few basic questions regarding mobile development and Kendo.
1.  I am building mobile apps with MVC 4 and VS 2012.  Do I only need to use Kendo Mobile UI or do I also use Kendo UI Complete for ASP.Net MVC?  What is the difference?
2.  I also want to use OpenAccess ORM, but do not understand where this integrates with Kendo UI Mobile (is there any good samples)?
3. This will be hosted via Azure websites, is there any gotchas before I moved forward?

Thanks for the help, I must admit it is not very clear which toolset to use at this point.
Jason
Alexander Valchev
Telerik team
 answered on 13 Jun 2013
4 answers
724 views
I have a combobox with over 100000 records, but it's unusable, it makes the browser very slow and unresponsive.

I'm using it like this:
@(Html.Kendo().ComboBox()
    .Name("ID_Poblacion")
    .DataValueField("Item1")
    .DataTextField("Item2")
    .DataSource(dataSource => dataSource // Configure the grid data source
        .Read(read => read.Action("Items", "Poblacion", new { Area = "DataAPI" }))
    )
    .Value(Model.ID_Poblacion.ToString())
)
I've also tried setting Autobind(false), but when I try to open the combobox it becomes unusable.

I've tried limiting the number of records returned, but once it's databoud, it seems it won't call the server method again no matter what I type in the box.

Any help on how to make the combobox usable with huge number of records?
Sergi
Top achievements
Rank 1
 answered on 13 Jun 2013
Narrow your results
Selected tags
Tags
Grid
General Discussions
Scheduler
DropDownList
Chart
Editor
TreeView
DatePicker
ComboBox
Upload
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
Accessibility
ListView (Mobile)
Pager
ColorPicker
DateRangePicker
Security
Wizard
Styling
Chat
DateInput
MediaPlayer
TileLayout
Drawer
SplitView
Template
Barcode
ButtonGroup (Mobile)
Drawer (Mobile)
ImageEditor
RadioGroup
Sparkline
Stepper
TabStrip (Mobile)
GridLayout
Badge
LinearGauge
ModalView
ResponsivePanel
TextArea
Breadcrumb
ExpansionPanel
Licensing
Rating
ScrollView
ButtonGroup
CheckBoxGroup
NavBar
ProgressBar
QRCode
RadioButton
Scroller
Timeline
TreeMap
TaskBoard
OrgChart
Captcha
ActionSheet
Signature
DateTimePicker
AppBar
BottomNavigation
Card
FloatingActionButton
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
SegmentedControl
+? more
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
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?