以下是我目前为我的索引网站所做的事情:
<% 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标签id”和n
(for循环的变量)。然后它将使用AJAX来调用控制器方法。
控制器方法还获得div标签和n
。
最后,控制器方法将被调用3次。控制器方法将为每次调用返回“结果”。每次调用都需要几秒钟才能将结果返回给AJAX功能。
我的AJAX调用的success: function (result) { result = $.parseJSON(result); ...}
部分
然后将执行以下操作:
解析result
。
将div
与id="<%:divLoadGif%>"
切换为隐藏。
将div
与id="<%:divRealData%>"
切换为可见。
将4“值”替换为来自result
的已解析值。
容易吗?不适合我:-(因为我有一些问题:
循环正常。但是根本没有调用JavaScript函数AsyncFunction
!出了什么问题?
我完全不知道如何更改"This" "is" "a test" "row"
值
我的AJAX电话的success: function (result) { result = $.parseJSON(result); ...}
部分。
答案 0 :(得分:1)
尝试AsyncFunction(<%: divLoadGif %>, <%: divRealData %>, <%: n %>);