I am trying to open a kendo window based on input from a form. I am getting this error:
JavaScript runtime error: Object doesn't support property or method 'open'
The error occurs when win.open(); is called in the JavaScript in the view as listed below. Any help would be great.
Here is my controller:
using Kendo.Mvc.UI;
using Kendo.Mvc.Extensions;
using KendoGridAjaxBinding.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace KendoGridAjaxBinding.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
TheModel m = new TheModel();
return View(m);
}
public ActionResult Search( TheModel m)
{
if (m.Name != string.Empty)
{
ViewData["OpenGrid"] = "OpenGrid";
}
return View("Index", m);
}
}
}
Here is my view:
@using System
@using System.Web
@using System.Web.Mvc
@using System.Web.Razor
@using Kendo.Mvc.UI
@using KendoGridAjaxBinding.Models
@model TheModel
@using (Html.BeginForm("Search", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
<
label
for
=
"textinput"
>Name</
label
>@Html.TextBoxFor(model => model.Name, new { @class = "input-xs form-control", placeholder = "Name", type = "text" })<
br
/>
<
label
for
=
"textinput"
>Address</
label
>@Html.TextBoxFor(model => model.Address, new { @class = "input-xs form-control", placeholder = "Address", type = "text" })<
br
/>
<
label
for
=
"textinput"
>City</
label
>@Html.TextBoxFor(model => model.City, new { @class = "input-xs form-control", placeholder = "City", type = "text" })<
br
/>
<
label
for
=
"textinput"
>State</
label
>@Html.TextBoxFor(model => model.State, new { @class = "input-xs form-control", placeholder = "State", type = "text" })<
br
/>
<
button
id
=
"Search"
class
=
"btn btn-primary"
>Search</
button
>
}
@(Html.Kendo().Window()
.Name("window")
.Width(630)
.Height(315)
.Draggable()
.Resizable()
.Title("Test Test Test")
.Actions(actions => actions.Pin().Refresh().Maximize().Close())
.Visible(false)
)
<
script
type
=
"text/javascript"
>
var messageX = '@ViewData["OpenGrid"]';
if (messageX = "OpenGrid")
{
$("#window").kendoWindow();
var win = $("#window").data("kendoWindow");
var win = $("#window")
if (win != null)
{
win.open();
}
}
</
script
>
The Model:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace KendoGridAjaxBinding.Models
{
public class TheModel
{
public string Name { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
}
}
Thanks in advance,
rstinson