2012-03-07 11 views
-1

のためのjQueryを使用して、テーブル内の削除された行を削除することができ、私は次のビューがあります -どのように私は私のasp.net MVC

クリックした後、このスクリプトを呼び出すスクリプトとajax.actionlinkが含まれてい
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#removerow").click(function() { 
      $(this).remove(); 
     }); 
    }); 
</script> 


<h2>Details</h2> 

<fieldset> 
    <legend>This Question Currently has @Model.Answers.Count() Answers/s. </legend> 
<table id="incrementanswer"> 
    <tr> 
     <th> 
      Description 
     </th> 
     <th> 
      Answer 
     </th> 
     <th></th> 
    </tr> 

@foreach (var answer in Model.Answers.OrderBy(a=> a.IsRight)) 
{ 
     <tr id = "removerow"> 

     <td> 
      @Html.DisplayFor(modelItem => answer.Description) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => answer.Answer_Description.description) 
     </td> 
     <td> 
     @Ajax.ActionLink("Delete", "Delete", "Answer", 
     new { id = answer.AnswersID }, 
      new AjaxOptions 
      { 
       Confirm = "Are You sure You want to delete this Answer ?", 
       HttpMethod = "Post", 
       UpdateTargetId = "toremove", 
       OnSuccess = "removePartial2" 
      }) 


     </td> 
     </tr> 
} 
</table> 
<div id = "progress2"> 
<img src= "@Url.Content("~/Content/images/ajax-loader1.gif") "> 
</div> 

をリンクを削除します。現在、行はテーブルの最初の行である場合にのみ削除され、削除を確認する前に行が削除されるため、問題は何か? 、私は次のように私のビューを更新しましたが、私はまだ削除された行削除するremovePartial2スクリプトを強制することはできません: - - :

が編集した。

</script> 
<script type="text/javascript"> 
    function removePartial2() { 
     $(this).remove(); 
} 
</script> 

} 

<h2>Details</h2> 

<fieldset> 
    <legend>This Question Currently has @Model.Answers.Count() Answers/s. </legend> 
<table id="incrementanswer"> 
    <tr> 
     <th> 
      Description 
     </th> 
     <th> 
      Answer 
     </th> 
     <th></th> 
    </tr> 

@foreach (var answer in Model.Answers.OrderBy(a=> a.IsRight)) 
{ 
     <tr id = @answer.AnswersID> 

     <td> 
      @Html.DisplayFor(modelItem => answer.Description) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => answer.Answer_Description.description) 
     </td> 
     <td> 
     @Ajax.ActionLink("Delete", "Delete", "Answer", 
     new { id = answer.AnswersID }, 
      new AjaxOptions 
      { 
       Confirm = "Are You sure You want to delete this Answer ?", 
       HttpMethod = "Post", 
       UpdateTargetId = @answer.AnswersID.ToString(), 
       OnSuccess = "removePartial2" 
      }) 


     </td> 
     </tr> 
} 
</table> 
<div id = "progress2"> 
<img src= "@Url.Content("~/Content/images/ajax-loader1.gif") "> 
</div> 
+1

ID。なければならない。 Be。ユニーク。 –

+0

あなたのremovePartial2で$(これ)は何ですか?あなたはそれがあなたが望むオブジェクトを参照していると確信していますか? – Rastapopulous

+0

私はアプリケーションが目的の行を削除するように強制しようとしています、なぜ私は$(this)を使用していますか?しかし、うまくいきません...... –

答えて

0
  1. 」のIdsをする必要があります。 一意であること。"

  2. 削除オプションだけでなく、行がクリックされた場合に行を削除する機能があります。あなたの最初のjavascriptブロックを削除し、ajaxコール関数のみを使用します。

  3. OnSuccessは、Ajax呼び出しが200 codeを返したかどうかです。これは、ajax呼び出しが成功した場合のみです。戻り値が正しいかどうかを確認することはありません。

+0

IDをユニークにするために投稿を編集しました... –

+0

@johnG私は自分の答えを更新しました。あなたのajax呼び出しが成功した場合は、行を削除します。これは、サーバーからの200の戻りコードを意味します。 – Rastapopulous

関連する問題