Hello,
Using the mvc extensions I have a grid with details row. In the details row I have a listview with editor template like this:
Grid:
Grid details template:
ListView template:
ListView editor template:
In the ListView editor template when I try to add a kendo dropdown list I get a jquery error
"Uncaught SyntaxError: Unexpected token ILLEGAL "
However if I use the default editor "@(Html.EditorFor(p => p.LanguageID))" it does work fine. What can be the cause of that ?
Using the mvc extensions I have a grid with details row. In the details row I have a listview with editor template like this:
Grid:
@(Html.Kendo().Grid<
PromotionModel
>()
.Name("Promotions")
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(promotion => promotion.PromotionID);
model.Field(promotion => promotion.PromotionID).Editable(false);
model.Field(promotion => promotion.Clicks).Editable(false);
model.Field(promotion => promotion.Impressions).Editable(false);
model.Field(promotion => promotion.WebsiteID).DefaultValue(1);
})
.Read(read => read.Action("PromotionsRead", "Promotions", new { Area = "Administration" }))
.Create(create => create.Action("PromotionsCreate", "Promotions", new { Area = "Administration" }))
.Update(update => update.Action("PromotionsUpdate", "Promotions", new { Area = "Administration" }))
.Destroy(destroy => destroy.Action("PromotionsDestroy", "Promotions", new { Area = "Administration" }))
.Events(events => events.Error("OnError")) // Handle the "error" event
)
.ClientDetailTemplateId("details-template")
.Columns(columns =>
{
columns.Bound(x => x.PromotionID);
columns.Bound(x => x.Title);
columns.Bound(x => x.PromotionType);
columns.ForeignKey(x => x.WebsiteID, (System.Collections.IEnumerable)ViewData["Websites"], "WebsiteID", "Name");
columns.Bound(x => x.ProductCode);
columns.Bound(x => x.Clicks);
columns.Bound(x => x.Impressions);
columns.Bound(x => x.IsVisible);
columns.Command(commands =>
{
commands.Edit();
//commands.Destroy();
commands.Custom("Delete").Click("confirmDelete");
}).Title("Commands").Width(200);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp).DisplayDeleteConfirmation(false))
.Pageable()
.Events(e => e.Edit("OnEdit"))
.Sortable()
.Groupable()
.ColumnMenu()
.Filterable()
)
Grid details template:
<
script
id
=
"details-template"
type
=
"text/x-kendo-template"
>
<
div
class
=
"demo-section"
>
@(Html.Kendo().ListView<
PromotionTranslationModel
>()
.Name("ListView_#=PromotionID#")
.ClientTemplateId("translationTemplate")
.TagName("div")
.DataSource(ds => ds
.Model(m => m.Id("RecordID"))
.PageSize(3)
.Create(create => create.Action("PromotionTranslationsCreate", "PromotionTranslations", new { Area = "Administration", promotionID = "#=PromotionID#" }))
.Read(read => read.Action("PromotionTranslationsRead", "PromotionTranslations", new { Area = "Administration", promotionID = "#=PromotionID#" }))
.Update(update => update.Action("PromotionTranslationsUpdate", "PromotionTranslations", new { Area = "Administration", promotionID = "#=PromotionID#" }))
.Destroy(destroy => destroy.Action("PromotionTranslationsDestroy", "PromotionTranslations", new { Area = "Administration", promotionID = "#=PromotionID#" }))
)
.Pageable()
.Editable(editable => editable.TemplateName("PromotionTranslationEditTemplate"))
.ToClientTemplate()
)
</
div
>
</
script
>
ListView template:
<script type=
"text/x-kendo-tmpl"
id=
"translationTemplate"
>
<div class=
"product-view k-widget"
>
<div class=
"edit-buttons"
>
<a class=
"k-button k-button-icontext k-edit-button"
href=
"\\#"
><span class=
"k-icon k-edit"
></span></a>
<a class=
"k-button k-button-icontext k-delete-button"
href=
"\\#"
><span class=
"k-icon k-delete"
></span></a>
</div>
<dl>
<dt>Text</dt>
<dd>
#:Text#</dd>
<dt>Image URL</dt>
<dd>
#:ImageSource#</dd>
<dt>Language</dt>
<dd>
#:LanguageID#</dd>
</dl>
</div>
</script>
ListView editor template:
@model BusinessObjects.Models.PromotionTranslationModel
@using Kendo.Mvc.UI;
<
div
class
=
"translation-view"
>
<
dl
>
<
dt
>Text</
dt
>
<
dd
>
@(Html.EditorFor(p => p.Text))
<
span
data-for
=
"Text"
class
=
"k-invalid-msg"
></
span
>
</
dd
>
<
dt
>Image URL</
dt
>
<
dd
>
@(Html.EditorFor(p => p.ImageSource))
<
span
data-for
=
"ImageSource"
class
=
"k-invalid-msg"
></
span
>
</
dd
>
<
dt
>Language</
dt
>
<
dd
>
@*@(Html.EditorFor(p => p.LanguageID))*@
@(Html.Kendo().DropDownList()
.Name("color")
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<
SelectListItem
>() {
new SelectListItem() {
Text = "Black",
Value = "1"
},
new SelectListItem() {
Text = "Orange",
Value = "2"
},
new SelectListItem() {
Text = "Grey",
Value = "3"
}
})
.Value("1")
)
<
span
data-for
=
"LanguageID"
class
=
"k-invalid-msg"
></
span
>
</
dd
>
</
dl
>
<
div
class
=
"edit-buttons"
>
<
a
class
=
"k-button k-button-icontext k-update-button"
href
=
""
><
span
class
=
"k-icon k-update"
></
span
>Save</
a
>
<
a
class
=
"k-button k-button-icontext k-cancel-button"
href
=
""
><
span
class
=
"k-icon k-cancel"
></
span
>Cancel</
a
>
</
div
>
</
div
>
"Uncaught SyntaxError: Unexpected token ILLEGAL "
However if I use the default editor "@(Html.EditorFor(p => p.LanguageID))" it does work fine. What can be the cause of that ?