Net Mvc jQuery数据表行顺序拖放;丢弃和标识问题
我一直在用Asp.NETMVC开发一个调查应用程序。我在页面上有两个邻接表,在那里我为调查分配了一个问题。对我来说重要的是右边的桌子。可以从左侧的问题库中添加此表。还可以更改右侧表格中的行顺序。但是在这个表中,我在拖放行时遇到了一个问题。我在拖线,但它不会停在我放回原处的地方 应使用rowReorder.dataSrc属性,如中所述。但是,当datasrc属性被赋予其自身数据的问题id时,当您拖放时,行会发生变化,但id部分始终保持有序。当然,当问题的行在变化时,id行按升序排列是荒谬的。“问题”对象和数据如下 Question.cs对象Net Mvc jQuery数据表行顺序拖放;丢弃和标识问题,jquery,asp.net-mvc,asp.net-mvc-4,datatables,jquery-plugins,Jquery,Asp.net Mvc,Asp.net Mvc 4,Datatables,Jquery Plugins,我一直在用Asp.NETMVC开发一个调查应用程序。我在页面上有两个邻接表,在那里我为调查分配了一个问题。对我来说重要的是右边的桌子。可以从左侧的问题库中添加此表。还可以更改右侧表格中的行顺序。但是在这个表中,我在拖放行时遇到了一个问题。我在拖线,但它不会停在我放回原处的地方 应使用rowReorder.dataSrc属性,如中所述。但是,当datasrc属性被赋予其自身数据的问题id时,当您拖放时,行会发生变化,但id部分始终保持有序。当然,当问题的行在变化时,id行按升序排列是荒谬的。“问题
//------------------------------------------------------------------------------
// <auto-generated>
namespace MerinosSurvey.Models
{
using System;
using System.Collections.Generic;
public partial class Questions
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Questions()
{
this.Responses = new HashSet<Responses>();
this.Options = new HashSet<Options>();
this.SurveyQuestions = new HashSet<SurveyQuestions>();
}
public int QuestionId { get; set; }
public string QuestionName { get; set; }
public System.DateTime CreatedDate { get; set; }
public int CreatedUserId { get; set; }
public bool IsActive { get; set; }
public bool Status { get; set; }
public System.DateTime UpdatedDate { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Options> Options { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<SurveyQuestions> SurveyQuestions { get; set; }
}
}
}
Jquery数据表ajax调用
$("#rightTable").DataTable({
"ajax": {
"url": "/Survey/GetRelatedQuestions",
"type": "POST",
"data": { "surveyId": surveyId },
"datatype": "int"
},
"columnDefs": [
{ width: '10%', targets: 0 }
],
//"scrollX": true,
//"scrollY": "auto",
"columns": [
{"data": "QuestionId"},
{"data": "QuestionName"}
],
//responsive: true,
ordering: false,
info:true,
rowReorder: {
dataSrc: 'QuestionId',
selector: 'tr'
},
"language": {
"emptyTable":
"Ankete ilişkilenmiş soru bulunamadı. "
}
});
我希望这对你有用 Jquery datatable具有rowReordering和createdRow事件。只需使用它即可
$(document).ready(function(){
var table = $('#example').DataTable({
'ajax': {
'url': ''
},
'createdRow': function(row, data, dataIndex){
$(row).attr('id', 'row-' + dataIndex);
}
});
table.rowReordering();
});
谢谢你的回复。但是我得到了一个类似Uncaught TypeError的错误:rightTable.rowReordering不是一个函数要使用rowReordering(),您需要将表初始化为$(“#rightTable”).dataTable(),而不是$(“#rightTable”).dataTable()。有关详细信息,请参考此URl,我知道我已将数据表初始化为;var rightTable=$(“#rightTable”).DataTable({.creatdRow':…..}),然后我添加了rightTable.rowroreordering();你发送的那一页上有一张便条;'jQuery DataTables有一个行重新排序插件,允许在表中拖放行重新排序。遗憾的是,这个插件不再适用于DataTables 1.10及更高版本
$(document).ready(function(){
var table = $('#example').DataTable({
'ajax': {
'url': ''
},
'createdRow': function(row, data, dataIndex){
$(row).attr('id', 'row-' + dataIndex);
}
});
table.rowReordering();
});