从表中删除行

时间:2016-11-01 09:51:33

标签: jquery mysql ajax asp.net-mvc row

下午好,我想从表中删除一行,当我点击删除按钮时,整行将被删除,应该删除的数据是名称,联系人号码和年龄,这些也是保存的在数据库中所以我想要实现的是当点击删除按钮时,网站和数据库上的数据将被清除。谢谢。

我曾尝试过这种方法,但它只会删除网站上的行,每当我重新加载页面时,数据都会再次出现

$('.btnDelete').on('click', function() {
    $(this).closest('tr').remove();
    return false;
});
<td>
    <button href="javascript:void(0);" id="btnDelete" class="btnDelete">Delete</button>
</td>

2 个答案:

答案 0 :(得分:0)

在HTML编码中,按钮标记包含用于链接到&#34; javascript:void(0)&#34;的链接的HREF属性。所以click事件可以执行链接到HYPERLINK位置,它无法从表中删除行。所以我们在脚本中链接JAVASCRipt:VOID(0)。

脚本:

 $('.btnDelete').on('click', function() { { // <-- changes
     $(this).closest('tr').remove();
     windows.location = "javascript:void(0);"
     return false;
  });

HTML编码:

  <td>
      <button id="btnDelete" class="btnDelete">Delete</button>
   </td>

答案 1 :(得分:0)

您必须在控制器中编写删除功能,如此

public ActionResult Delete(int? id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    table1 tableobject = db.table1.Find(id);
    if (tableobject == null)
    {
        return HttpNotFound();
    }
    return View(tableobject );
}


[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
    table1 tableobject = db.table1.Find(id);
    db.table1.Remove(tableobject);
    db.SaveChanges();
    return RedirectToAction("Index");
}

在视图中

 $('.btnDelete').on('click', function() {

     $.ajax({
        type: "post",
        url: "@Url.Action("Delete","ControllerName")",
        ajaxasync: true,
        data: { id : $(this).find('td').eq(0).text()  },
        success: function () {

            alert("success");
              $(this).closest('tr').remove();
            // Perform redirect

        },
        error: function (data) {
            alert(data.x);
        }
    });
});