Вот что у меня есть для моего сайта Index:
<% if (Model.Data != null)
{
if (Model.Data.Rows.Count > 0)
{
var divLoadGif = string.Empty;
var divRealData = string.Empty;
for(int n = 0; n < Model.Data.Rows; n++)
{
divLoadGif = "divLoadGif_" + n.ToString("0000");
divRealData = "divRealData_" + n.ToString("0000");
%>
<div id="<%:divLoadGif%>" style="width: 100%;">
Please wait ...
<img src="/loading.gif" alt="loading ..." />
</div>
<div id="<%:divRealData%>" style="visibility: hidden;">
<div id="column_1" style="width: 25%; float:left;">
This
</div>
<div id="column_2" style="width: 25%; float:left;">
is
</div>
<div id="column_3" style="width: 25%; float:left;">
a test
</div>
<div id="column_4" style="width: 25%; float:left;">
row.
</div>
</div>
<script type="text/javascript">
AsyncFunction(<%: divLoadGif %>, <%: divRealData %>, n);
</script>
<% }
}
}
%>
Контроллер заполняет мой Model.Data
.Например:
Model.Data.Row
должно быть равно 3. Это означает, что цикл будет делать 3 "раунда".Идея состоит в том, что в каждом «раунде» должен отображаться gif загрузки, а часть div
(с 4 столбцами) невидима.
Тогда функция JavaScript AsyncFuntionCall
должнаназываться.(Это не удалось.)
Эта функция JavaScript становится двумя "идентификаторами тегов div" и n
(переменная цикла for).Затем он будет использовать AJAX для вызова метода контроллера.
Метод контроллера также получает теги div и n
.
Наконец,метод контроллера будет вызываться 3 раза.Метод контроллера будет возвращать «результат» для каждого вызова.Каждому вызову потребуется несколько секунд, прежде чем он вернет результат функции AJAX.
Часть success: function (result) { result = $.parseJSON(result); ...}
моего вызова AJAX будет выполнять следующие действия:
Анализ result
.
Переключение div
с помощью id="<%:divLoadGif%>"
на скрытое.
Переключениеdiv
с id="<%:divRealData%>"
до видимого.
Заменить 4 "значения" на проанализированные значения от result
.
Легко?Не для меня :-( потому что у меня есть некоторые проблемы:
Цикл работает нормально. Но функция JavaScript AsyncFunction
вообще не вызывается! Что происходит не так?
Я абсолютно не представляю, как я могу изменить значения "This" "is" "a test" "row"
в success: function (result) { result = $.parseJSON(result); ...}
части моего вызова AJAX.