2013-03-27 144 views
1

我正在研究ASP.NET MVC 4項目,它是某種評估工具。 在我的觀點CoWorkers,我填寫數據庫所要求的數據的數據表。 在第一列中,我顯示名稱,在第二列中,我正在顯示指向其個人文件的鏈接。 該視圖的一部分稱爲「PersoonlijkeFichePartial」,因此當我單擊數據表中的鏈接時,它必須在數據表下的div中打開部分。我用ajax調用這個。 但我結果div是空的,我不想看到,在我看來,所以我做了jquery。 現在的問題是,當我在我的DataTable中的鏈接(與AJAX調用),結果DIV不會顯示自己(我需要某種形式的回調?)jQuery的Ajax回調函數

編輯 無需我就點擊發布我的控制器操作,如果我剪掉隱藏結果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

難道只是我還是asp.net真的使一個簡單的東西完全混淆? – 2013-03-27 08:40:41

回答

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