Jquery dataTable.editable;addData函数工作不正常
在我的数据库中,我有一个consultant表,它有consultant ID和ConsultantName,还有一个表weekly hours,它有consultant ID,它有FK,并存储每个顾问一周的工作时间。我在客户端模式下使用jQuery DataTables Editable插件来显示一个带有consultantName、week、hours、billableRateRt等的表。 表的内联编辑功能工作得很好,但是当我向表中添加新行时,会出现此错误 DataTables警告(表id='myDataTable'):从数据源请求的未知参数“0” 新行将添加到每周工时表中。我认为这个错误是因为顾问的名字不在每周工作时间的一部分。我通过加入weeklyhours和consultant table获得顾问名称。因此,我在weeklyhour模型类中添加了以下属性,以便在添加新行之前,也可以在addData函数中设置此属性Jquery dataTable.editable;addData函数工作不正常,jquery,datatables,Jquery,Datatables,在我的数据库中,我有一个consultant表,它有consultant ID和ConsultantName,还有一个表weekly hours,它有consultant ID,它有FK,并存储每个顾问一周的工作时间。我在客户端模式下使用jQuery DataTables Editable插件来显示一个带有consultantName、week、hours、billableRateRt等的表。 表的内联编辑功能工作得很好,但是当我向表中添加新行时,会出现此错误 DataTables警告(表id=
[NotMapped] public string ConsultantName { get; set; }
下面是addData函数
public int AddData(string ConsultantName, string week, string hours, string BillableRateRT, string BillableRateOT, string PayableRateRT, string PayableRateOT, string currency)
{
DateTime wek = Convert.ToDateTime(week);
var cc=db.Consultants.First(d => d.ConsultantName.ToLower().Equals(ConsultantName.ToLower())).ConsultantID;
var consu = from ww in db.WeeklyHours
where (ww.ConsultantID == cc && (ww.Week.Year == wek.Year && ww.Week.Month == wek.Month && ww.Week.Day == wek.Day))
select ww.ConsultantID;
if (consu.Any())
{
Response.Write(ConsultantName + " work hours for" + week + "' already exists");
Response.StatusCode = 404;
Response.End();
return -1;
}
var weeklydata = from q in db.WeeklyHours
select q;
var wh = new WeeklyHour();
wh.ConsultantID = cc;
wh.ConsultantName = ConsultantName;
wh.Week = Convert.ToDateTime(week);
wh.Hours = Convert.ToInt32(hours);
wh.BillableRateRT = Convert.ToDecimal(BillableRateRT);
wh.BillableRateOT = Convert.ToDecimal(BillableRateOT);
wh.PayableRateRT = Convert.ToDecimal(PayableRateRT);
wh.PayableRateOT = Convert.ToDecimal(PayableRateOT);
wh.Currency = currency;
db.WeeklyHours.Add(wh);
try
{
db.SaveChanges();
}
catch (Exception e)
{
Console.WriteLine(e);
// Provide for exceptions.
}
return wh.ConsultantID;
}
不过,每次添加一行时,我都会遇到相同的错误。另外,我认为,当我刷新表时,我看到consultant name字段有正确的数据,这是很重要的
以下是初始化数据表的代码
`<script language="javascript" type="text/javascript">
$(document).ready(function () {
$('#myDataTable').dataTable().makeEditable({
sUpdateURL: "/DataEntry/UpdateData",
sAddURL: "/DataEntry/AddData"
});
});
`
$(文档).ready(函数(){
$('#myDataTable').dataTable().makeEditable({
sUpdateURL:“/DataEntry/UpdateData”,
sAddURL:“/DataEntry/AddData”
});
});
顾问姓名
周
小时
比勒贝勒特尔特
比勒贝雷特
应付税款
应纳税义务人
通货
@foreach(模型中的var项目)
{
@item.ConsultantName
@item.Week.ToSortDateString()@*仅获取日期*@
@项目.时间
@项目.应付账款比率
@项目1.BillableRateOT
@项目1.应缴税率
@项目.应付账款
@项目.货币
}
`
下面是创建添加数据表单的代码
@{
IQueryable<string> ConsultantNameList = DropdownUitility.getConsultantsforCompany(Model);
}
<form id="formAddNewRow" action="#" title="Add Weekly Hours for a Consultant">
<label for="name">ConsultantName</label>
<select name="ConsultantName" id="ConsultantName">
@{
int count = 0;
// String name = null;
foreach (var name in ConsultantNameList)
{
count++;
<option value= "@name.ToString()" id="@count" rel="0">@name </option>
}
}`</select>
<br />
<label for="name">
Week</label><input type="text" name="Week" id="Week" rel="1" />
<br />
<label for="name">
Hours</label><input type="text" name="Hours" id="Hours" rel="2" />
<br />
<label for="name">
BillableRateRT</label><input type="text" name="BillableRateRT" id="BillableRateRT"
rel="3" />
<br />
<label for="name">
BillableRateOT</label><input type="text" name="BillableRateOT" id="BillableRateOT"
rel="4" />
<br />
<label for="name">
PayableRateRT</label><input type="text" name="PayableRateRT" id="PayableRateRT" rel="5" />
<br />
<label for="name">
PayableRateOT</label><input type="text" name="PayableRateOT" id="PayableRateOT" rel="6" />
<br />
<label for="name">
Currency</label><input type="text" name="Currency" id="Currency" rel="7" />
<br />
<br />
</form>`
@{
IQueryable ConsultantNameList=DropDownuity.getConsultantsforCompany(模型);
}
顾问姓名
@{
整数计数=0;
//字符串名称=null;
foreach(顾问名称列表中的变量名称)
{
计数++;
@名字
}
}`
周
小时
比勒贝勒特尔特
比勒贝雷特
应付税款
应纳税义务人
通货
`
我发现了这个bug,它是咨询师姓名的html选择列表中的rel属性
错:
<select name="ConsultantName" id="ConsultantName">
@{
int count = 0;
foreach (var name in ConsultantNameList)
{
count++;
<option value= "@name.ToString()" id="@count" rel="0">@name </option>
}
}
</select>
@{
整数计数=0;
foreach(顾问名称列表中的变量名称)
{
计数++;
@名字
}
}
select应该具有rel属性,可编辑插件使用该属性将数据与列匹配。在我以前的代码中,我将rel属性放在Options标记中,这是错误的
正确:
<select name="ConsultantName" id="ConsultantName" rel="0">
@{
int count = 0;
foreach (var name in ConsultantNameList)
{
count++;
<option value= "@name.ToString()" id="@count" >@name </option>
}
}
</select>
@{
整数计数=0;
foreach(顾问名称列表中的变量名称)
{
计数++;
@名字
}
}
<select name="ConsultantName" id="ConsultantName" rel="0">
@{
int count = 0;
foreach (var name in ConsultantNameList)
{
count++;
<option value= "@name.ToString()" id="@count" >@name </option>
}
}
</select>