доброе время суток, коллеги!
2 контроллера работают с представлениями, использующими Ajax
каждое имеет свой файл js
вызываемый в представлении
Effectivness.js и Downtime.js
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
@Scripts.Render("~/bundles/syncfusionjs")
@Styles.Render("~/content/syncfusioncss")
@using Syncfusion.MVC.EJ
@using Syncfusion.EJ
@using Syncfusion.JavaScript.DataVisualization
@model MiraWebTula.Models.LastLineEvents
<div class="container-fluid">
<script type="text/javascript" src="@Url.Content("~/bower_components/keyboard/dist/js/jquery.keyboard.js")"></script>
<script type="text/javascript" src="@Url.Content("~/bower_components/keyboard/dist/js/jquery.keyboard.extension-all.min.js")"></script>
<link href="@Url.Content("~/Content/keyboard.css")" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="@Url.Content("~/Scripts/app/Effectivness.js")"></script>
<script type="text/javascript" src="@Url.Content("~/bower_components/jquery-ui/jquery-ui.js")"></script>
<link href="@Url.Content("~/bower_components/jquery-ui/themes/base/jquery-ui.min.css")" rel="stylesheet" type="text/css" />
<script src="~/bower_components/Microsoft.jQuery.Unobtrusive.Ajax/jquery.unobtrusive-ajax.js"></script>
<!-- First, we load Globalize's dependencies (`cldrjs` and its supplemental module). -->
<script src="~/bower_components/cldrjs/dist/cldr.js"></script>
<script src="~/bower_components/cldrjs/dist/cldr/event.js"></script>
<script src="~/bower_components/cldrjs/dist/cldr/supplemental.js"></script>
<!-- Next, we load Globalize and its modules. -->
<script src="~/bower_components/globalize/dist/globalize.js"></script>
<script src="~/bower_components/globalize/dist/globalize/number.js"></script>
<!-- Load after globalize/number.js -->
<script src="~/bower_components/globalize/dist/globalize/date.js"></script>
<script src="~/bower_components/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/bower_components/jquery-validation-globalize/jquery.validate.globalize.js"></script>
<script src="~/bower_components/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
<script>
$("form").validate();
</script>
<script>
$.when(
$.getJSON("/bower_components/cldr-data/supplemental/likelySubtags.json"),
$.getJSON("/bower_components/cldr-data/main/ru/numbers.json"),
$.getJSON("/bower_components/cldr-data/supplemental/numberingSystems.json"),
$.getJSON("/bower_components/cldr-data/main/ru/ca-gregorian.json"),
$.getJSON("/bower_components/cldr-data/main/ru/timeZoneNames.json"),
$.getJSON("/bower_components/cldr-data/supplemental/timeData.json"),
$.getJSON("/bower_components/cldr-data/supplemental/weekData.json")
).then(function () {
return [].slice.apply(arguments, [0]).map(function (result) {
return result[0];
});
}).then(Globalize.load).then(function () {
var global = Globalize.locale("ru");
});
</script>
<div class="row">
<div class="col-md-12">
<div id="modal"></div>
<h3 class="page-header">Ввод данных </h3>
</div>
</div>
<div class="row">
<div class="col-md-4 col-lg-4">
<div class="panel panel-default">
<div class="panel-heading">
Эффективность по участку <strong> @Model.Sector</strong>
</div>
<div class="panel-body">
@using (Ajax.BeginForm(new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "Refresh"
}))
{
<div class="form-inline">
<div class="form-group">
<label>
Номер плана:
</label>
@Html.TextBoxFor(m => m.Job, htmlAttributes: new { @class = "form-control", placeholder = "0xxxxx" })
@Html.ValidationMessageFor(m => m.Job, "", new { @class = "text-danger" })
</div>
<input type="hidden" id="SectorId" name="SectorId" value="@Model.SectorId">
<input type="hidden" id="Sector" name="Sector" value="@Model.Sector">
<div class="form-group">
<label>
Смена:
</label>
@(Html.EJ().DropDownListFor(m => m.Shift, new Syncfusion.JavaScript.Models.DropDownListProperties()
{
DataSource = ViewData["shift"],
WatermarkText = "Смена",
DropDownListFields = new Syncfusion.JavaScript.Models.DropDownListFields()
{
Text = "Name",
Id = "Id",
Value = "Id"
}
}
))
@Html.ValidationMessageFor(m => m.Shift)
</div>
<div class="form-group">
<label>
Линия:
</label>
@(Html.EJ().DropDownListFor(m => m.LineId, new Syncfusion.JavaScript.Models.DropDownListProperties()
{
DataSource = ViewData["line"],
WatermarkText = "Линия",
DropDownListFields = new Syncfusion.JavaScript.Models.DropDownListFields()
{
Text = "LineName",
Id = "id",
Value = "id"
},
EnableFilterSearch = true,
EnableIncrementalSearch = true,
CaseSensitiveSearch = false
}
))
@Html.ValidationMessageFor(m => m.Line, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>
Событие:
</label>
@(Html.EJ().DropDownListFor(m => m.EventId, new Syncfusion.JavaScript.Models.DropDownListProperties()
{
DataSource = ViewData["stat"],
WatermarkText = "Событие",
DropDownListFields = new Syncfusion.JavaScript.Models.DropDownListFields()
{
Text = "LineStatusName",
Id = "id",
Value = "id"
}//,
// EnablePersistence = true
}
))
@Html.ValidationMessageFor(m => m.EventName, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Зарегистрировать</label>
<button type="submit" class="btn btn-primary e-in-wrap" value="Refresh" name="Refresh">Регистрация</button>
</div>
</div>
}
</div>
</div>
</div>
<div class="col-md-8 col-lg-8">
<div class="panel panel-default">
<div class="panel-heading">
Инструкция по вводу данных.
</div>
<div class="panel-body">
<ol>
<li>
Для регистрации события "Работа" требуется ...
</li>
</ol>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
@(Html.EJ().Button("Refresh").Text("обновить").ClientSideEvents(d => d.Click("Refresh")))
@{
@(Html.EJ().Grid<object>("FlatGrid1")
.Datasource(ds => ds.Json(ViewData["event"])).Locale("ru-RU").Columns(col =>
{
col.Field("Id").HeaderText("Id").Width(20).Add();
col.Field("Job").HeaderText("План").Width(50).Add();
col.Field("Sector").Visible(false).Add();
col.Field("SectorId").Visible(false).Add();
col.Field("Line").HeaderText("Линия").Width(60).Add();
col.Field("LineId").Visible(false).Add();
col.Field("Status").HeaderText("Статус").Width(40).TextAlign(TextAlign.Center).CssClass("customcss").Add();
col.Field("Shift").Visible(false).Add();
col.Field("StartDate").HeaderText("Начало").Format("{0:dd/MM/yyyy H:mm}").Width(60).Add();
col.Field("EndDate").HeaderText("Окончание").Format("{0:dd/MM/yyyy H:mm}").Width(60).Add();
col.Field("EventName").HeaderText("Событие").Width(60).Add();
col.Field("EventId").Visible(false).Add();
col.HeaderText("Упр.").Commands(command =>
{
command.Type("STOP")
.ButtonOptions(new Syncfusion.JavaScript.Models.ButtonProperties()
{
Text = "Стоп",
Click = "stop"
}).Add();
}).Width(40).Add();
}
)
.ClientSideEvents(eve => eve.QueryCellInfo("querycellinfo"))
)
}
</div>
</div>
</div>
</div>
<script>
$("#Job")
.keyboard({
layout: "custom",
customLayout: {
'default': [
'7 8 9',
'4 5 6',
'1 2 3',
'0 {accept} {bksp}']
},
autoAccept: true,
css: {
// input & preview
input: "form-control input-sm",
// keyboard container
container: "center-block dropdown-menu", // jumbotron
// default state
buttonDefault: "btn btn-default",
// hovered button
buttonHover: "btn-primary",
// Action keys (e.g. Accept, Cancel, Tab, etc);
// this replaces "actionClass" option
buttonAction: "active",
// used when disabling the decimal button {dec}
// when a decimal exists in the input area
buttonDisabled: "disabled"
}
})
.addTyping();
</script>
<script>
function querycellinfo(args) {
if (args.column.field == "Status") {
if (args.data.Status == true) {
$(args.cell).css("backgroundColor", "#32CD32");
}
else {
$(args.cell).css("backgroundColor", "#DC143C");
}
}
}/*custom css applied to the row */
</script>
@section Scripts {
<script>
$("form").validate();
</script>
}
файл Effectivness.js содержит функцию
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function Refresh(args) {
var param = 0;
$.ajax({
type: "post",
url: "/Effectivness/GetJsonGridData",
data: { 'data': param },
async: false,
success: function (data) {
$("#FlatGrid1").ejGrid("dataSource", ej.parseJSON(data));
// $('input[checked ="checked"]').closest(".customcss").removeClass("customcss").addClass("customcss1");
}
});
}
различия только в наименованиях компонентов.
но. все нормально работает только в одном из представлений
во втором,
когда я нажимаю на кнопку "Регистрировать" - запись успешно добавляется в обработчике контроллера post
но вызова функции не происходит.
хотя при нажатии "обновить" - все обновляется
что еще может влиять на вызов js?
куда копать?
заранее спасибо