【发布时间】:2020-11-24 10:38:26
【问题描述】:
我在数据表中有一条学生记录,如果我点击任何一条记录,它会执行两个操作。
-
获取学生的详细信息,它工作正常,如绿色圈出的图像中所述 使用 getJson。
-
我还想获取所选学生的所有发票及其付款。
注意:发票可以是一张或多张,付款也可以是一张或多张。
问题 - 用红色圈出
一个。我在数据表的第一行没有可用数据。
b.只从 Invoice 表中获取数据,而不从 payment 表中获取数据。
c。无法从表中选择记录。
寻找解决方案/解决方法
当用户从列表中选择任何学生时,它应该显示所有发票及其相应的付款,然后转到下一张发票及其相关付款。
例子:
学号:123
发票编号:12345、12347、123479
付款 ID:12 表示发票 ID 12345,14 表示 12345,17 表示 12347,依此类推。
JSON 代码:
var oTable1;
oTable1 = $('#invoiceNo').dataTable();
$('#invoiceNo').on('click', 'tr', function ()
{
var stu_id = $(this).find('td').eq(0).text();
var aid = parseInt(stu_id);
//alert(aid);
$.getJSON("/Transaction/showStu_Inv_Pay",
{
id: aid
},
function (data) {
num_rows = data.length;
alert(num_rows);
var myTable = $('#inv_pay').DataTable();
myTable.clear().rows.add(myTable.data).draw();
$(data).each(function (index, item) {
$('#inv_pay tbody').append(
'<tr><td>' + this.InvoiceID +
'</td><td>' + this.InvoiceIDate +
'</td><td>' + this.Invoice_Type_Name +
'</td></tr>'
)
});
});
});
Linq 查询
public IList<Transaction> GetInvByStuID()
{
try
{
DBAPPSEntities _db = new DBAPPSEntities();
this.Invoice_Type_Name = "Invoice";
IList<Transaction> List = (from q in _db.DEL_STU_INV
where q.STU_ID == this.Stu_ID
select new Transaction
{
InvoiceID = q.INVOICE_ID,
InvoiceIDate = q.Inv_Issue_Date,
InvoiceDDate = q.Inv_Due_Date,
Invoice_Month1 = q.Inv_Month_1,
Invoice_Month2 = q.Inv_Month_2,
Invoice_Month3 = q.Inv_Month_3,
Invoice_Note = q.Inv_Note,
Invoice_Adjustment = q.Adjust_Type,
Invoice_Type_Name = this.Invoice_Type_Name,
}).ToList();
return List;
}
catch
{
return null;
}
}
注意:- linq 查询仅来自发票表,不确定如何与付款表结合,可以更改。
第 101 节
控制器 - 设置学生 ID
public JsonResult showStu_Inv_Pay(int id)
{
var model = new Transaction { Stu_ID = id }; // student id set to model
var data = model.GetInvByStuID();
return Json(data, JsonRequestBehavior.AllowGet);
}
第 102 节
样本数据
第 103 节 - 更新 - 1
第 104 节 - 更新 - 2
【问题讨论】:
-
JSON 代码显示发票表有学生 ID,但您的 c# 表缺少学生 ID。
-
@jdweng 感谢您的调查。我在第 101 节下更新了关于控制器的问题。它工作正常。我在两件事上寻求帮助。一种。形成涉及多个表的 LINQ 查询(为了您的理解,我还将在今天晚些时候更新第 102 节下的采样数据)。 B. 根据匹配行的返回结果在 json 中创建数据表。
-
我已更新,如有遗漏请告诉我。