jqGrid MVC Error: "Uncaught ReferenceError: AutoComplete_acid is not defined"
jqGrid MVC Error: "Uncaught ReferenceError: AutoComplete_acid is not defined"
我对 MVC 和 JQGrid 都很陌生。我在让 AutoComplete 或 DatePicker 进行编辑或搜索时遇到问题。
我假设(希望)一个解决方案可以解决这两个问题,因为我在这两个问题上都遇到了类似的错误,所以暂时我将其简化为 AutoComlete 以简化事情。
我一直在关注 http://www.trirand.net/aspnetmvc/grid/performancelinqsearch 中的示例
让自动完成在列上方的搜索工具栏中工作。
似乎无论我尝试什么,自动完成都不起作用,我在 Chrome 的开发控制台中收到此错误:"Uncaught ReferenceError: AutoComplete_acid is not define".
这是我的看法。我已经禁用了主布局以防引起任何冲突。我尝试使用 jqGrid 下载附带的 jQuery 版本而不是最新版本。当我排除自动完成脚本时,我没有收到有关自动完成缺失或无法加载资源的警报。
@model MRA_Survey_Manager.Models.ESLogModel
@using Trirand.Web.Mvc
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<title>MRA Survey Manager</title>
<link rel="stylesheet" type="text/css" href="~/Content/themes/base/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="~/Content/jquery.jqGrid/ui.jqgrid.css" />
<script type="text/javascript" src="~/Scripts/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/jquery.jqAutoComplete.min.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/CustomValidators.js"></script>
</head>
<body>
<div style="Width:100%">
@Html.Trirand().JQGrid(Model.ESLogGrid, "ESLogGrid")
@{
Html.Trirand().JQAutoComplete(
new JQAutoComplete
{
DisplayMode = AutoCompleteDisplayMode.ControlEditor,
DataField = "Carrier",
DataUrl = Url.Action("AutoCompleteCarrier", "ESLogGrid")
}, "AutoComplete");
}
</div>
</body>
</html>
在我的控制器中我有:
public JsonResult AutoCompleteCarrier(string term)
{
JQAutoComplete autoComp = new JQAutoComplete();
autoComp.DataField = "Carrier";
autoComp.AutoCompleteMode = AutoCompleteMode.BeginsWith;
autoComp.DataSource = from survey in db.MRA_SurveyLog
select survey;
return autoComp.DataBind();
}
在我的网格设置中:
JQGridColumn column = logGrid.Columns.Find(c => c.DataField == "Carrier");
column.SearchType = SearchType.AutoComplete;
column.Searchable = true;
column.DataType = typeof(string);
column.SearchControlID = "AutoComplete";
column.SearchToolBarOperation = SearchOperation.BeginsWith;
我已经检查了 http://www.trirand.net/forum/default.aspx?g=posts&t=2902
中列出的三件事
我已经为此苦苦挣扎了一段时间。任何帮助将不胜感激。
我终于明白了。结果证明是视图中 Razor 语法的问题。由于某种原因,在多语句块中定义自动完成对象导致了该错误。
将其更改为单语句解决了该问题。
@Html.Trirand().JQAutoComplete(new JQAutoComplete{DisplayMode = AutoCompleteDisplayMode.ControlEditor, DataField = "Carrier", DataUrl = Url.Action("AutoCompleteCarrier", "ESLogGrid")}, "AutoComplete")
编辑:在解决了我最近遇到的另一个 Razor 语法问题后,我想回来更新此解决方案。问题出在我对语法的理解上,而不是 jqGrid 本身。当您在多语句块中使用花括号时,您显然必须将该部分包裹在文本标记中。所以以下也应该有效:
@{
<text>
@Html.Trirand().JQAutoComplete(
new JQAutoComplete
{
DisplayMode = AutoCompleteDisplayMode.ControlEditor,
DataField = "Carrier",
DataUrl = Url.Action("AutoCompleteCarrier", "ESLogGrid")
}, "AutoComplete")
</text>
}
更多信息位于:
我对 MVC 和 JQGrid 都很陌生。我在让 AutoComplete 或 DatePicker 进行编辑或搜索时遇到问题。
我假设(希望)一个解决方案可以解决这两个问题,因为我在这两个问题上都遇到了类似的错误,所以暂时我将其简化为 AutoComlete 以简化事情。
我一直在关注 http://www.trirand.net/aspnetmvc/grid/performancelinqsearch 中的示例 让自动完成在列上方的搜索工具栏中工作。
似乎无论我尝试什么,自动完成都不起作用,我在 Chrome 的开发控制台中收到此错误:"Uncaught ReferenceError: AutoComplete_acid is not define".
这是我的看法。我已经禁用了主布局以防引起任何冲突。我尝试使用 jqGrid 下载附带的 jQuery 版本而不是最新版本。当我排除自动完成脚本时,我没有收到有关自动完成缺失或无法加载资源的警报。
@model MRA_Survey_Manager.Models.ESLogModel
@using Trirand.Web.Mvc
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<title>MRA Survey Manager</title>
<link rel="stylesheet" type="text/css" href="~/Content/themes/base/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="~/Content/jquery.jqGrid/ui.jqgrid.css" />
<script type="text/javascript" src="~/Scripts/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/jquery.jqAutoComplete.min.js"></script>
<script type="text/javascript" src="~/Scripts/jqGrid/CustomValidators.js"></script>
</head>
<body>
<div style="Width:100%">
@Html.Trirand().JQGrid(Model.ESLogGrid, "ESLogGrid")
@{
Html.Trirand().JQAutoComplete(
new JQAutoComplete
{
DisplayMode = AutoCompleteDisplayMode.ControlEditor,
DataField = "Carrier",
DataUrl = Url.Action("AutoCompleteCarrier", "ESLogGrid")
}, "AutoComplete");
}
</div>
</body>
</html>
在我的控制器中我有:
public JsonResult AutoCompleteCarrier(string term)
{
JQAutoComplete autoComp = new JQAutoComplete();
autoComp.DataField = "Carrier";
autoComp.AutoCompleteMode = AutoCompleteMode.BeginsWith;
autoComp.DataSource = from survey in db.MRA_SurveyLog
select survey;
return autoComp.DataBind();
}
在我的网格设置中:
JQGridColumn column = logGrid.Columns.Find(c => c.DataField == "Carrier");
column.SearchType = SearchType.AutoComplete;
column.Searchable = true;
column.DataType = typeof(string);
column.SearchControlID = "AutoComplete";
column.SearchToolBarOperation = SearchOperation.BeginsWith;
我已经检查了 http://www.trirand.net/forum/default.aspx?g=posts&t=2902
中列出的三件事我已经为此苦苦挣扎了一段时间。任何帮助将不胜感激。
我终于明白了。结果证明是视图中 Razor 语法的问题。由于某种原因,在多语句块中定义自动完成对象导致了该错误。
将其更改为单语句解决了该问题。
@Html.Trirand().JQAutoComplete(new JQAutoComplete{DisplayMode = AutoCompleteDisplayMode.ControlEditor, DataField = "Carrier", DataUrl = Url.Action("AutoCompleteCarrier", "ESLogGrid")}, "AutoComplete")
编辑:在解决了我最近遇到的另一个 Razor 语法问题后,我想回来更新此解决方案。问题出在我对语法的理解上,而不是 jqGrid 本身。当您在多语句块中使用花括号时,您显然必须将该部分包裹在文本标记中。所以以下也应该有效:
@{
<text>
@Html.Trirand().JQAutoComplete(
new JQAutoComplete
{
DisplayMode = AutoCompleteDisplayMode.ControlEditor,
DataField = "Carrier",
DataUrl = Url.Action("AutoCompleteCarrier", "ESLogGrid")
}, "AutoComplete")
</text>
}
更多信息位于: