我正在开发一个ASP.NET MVC 4项目,它是某种评估工具。 在我看来CoWorkers,我正在用数据库中请求的数据填充数据表。 在第一列中,我显示名称,在第二列中,我显示了指向其个人文件的链接。 视图中的部分称为“PersoonlijkeFichePartial”,因此当我单击数据表中的链接时,它必须在数据表下的div中打开部分。我用ajax调用这样做。 但我的结果div是空的,我不想在我的视图中看到,所以我用jquery做了。 现在的问题是,当我点击我的数据表中的链接(使用ajax调用)时,结果div不会显示自己(我需要某种回调?)
修改 我不需要发布我的控制器动作,如果我剪切了隐藏结果div的jquery代码,部分视图是可见的(当我点击我的表格中的链接时),但我需要代码隐藏该div,所以在任何人点击我表格中的链接之前就不存在了。
以下是代码:
<div class="ContentDiv">
<table id="table_id" class="display">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Naam)
</th>
<th>Persoonlijke Fiche
</th>
<th>Functiebeschrijving
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Naam)
<td>
@Ajax.ActionLink("Persoonlijke Fiche", "PersoonlijkeFichePartial", new { account = item.Account }, new AjaxOptions { UpdateTargetId = "result"})
</td>
<td>
@Html.ActionLink("Functiebeschrijving", "Details", new { account = item.Account })
</td>
</tr>
}
</tbody>
</table>
</div>
<div id="generate" class="ContentDiv">
<div id="result"></div>
</div>
@section scripts {
<script type="text/javascript" src="~/Scripts/jquery.dataTables.js"></script>
<script>
$(document).ready(function () {
$('#table_id').dataTable({
"aoColumns": [{ "bSortable": true }, { "bSortable": false }, { "bSortable": false }]
}
);
});
$(function () {
if ($("div#result").html() == "") {
$("div#generate").hide();
}
});
</script>
}
答案 0 :(得分:1)
尝试编辑这样的代码:
<script>
$(document).ready(function () {
$('#table_id').dataTable({
"aoColumns": [{ "bSortable": true }, { "bSortable": false }, { "bSortable": false }]
});
toggleResultDiv()
});
function toggleResultDiv() {
if ($("div#result").html() == "") {
$("div#generate").hide();
}
else $("div#generate").show();
}
</script>
并改变你的ajax调用:
@Ajax.ActionLink("Persoonlijke Fiche", "PersoonlijkeFichePartial", new { account = item.Account }, new AjaxOptions { UpdateTargetId = "result", OnSuccess = "toggleResultDiv"})
您需要调用显示或隐藏div的函数。在您的情况下,它只被调用一次,并始终隐藏div#generate