C#
[WebMethod]
public string loadLeaveRequests(int empID, int StatID, int isOwn)
{
List<lstLeaveRequest> mylist = new List<lstLeaveRequest>();
using (SqlConnection connection = new SqlConnection(connectionString()))
{
connection.Open();
SqlCommand cmd = new SqlCommand("spLoadLeaveRequest", connection);
cmd.Parameters.Add("@empID", SqlDbType.Int).Value = empID;
cmd.Parameters.Add("@Stat", SqlDbType.Int).Value = StatID;
cmd.Parameters.Add("@Own", SqlDbType.Int).Value = isOwn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 0;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
mylist.Add(new lstLeaveRequest
{
reqID = dr["reqID"].ToString(),
dateFiled = dr["save_date"].ToString(),
fname = dr["first_name"].ToString(),
leaveType = dr["leaveAlias"].ToString(),
dateFrom = dr["DateFrom"].ToString(),
fromWhen = dr["FromWhen"].ToString(),
dateTo = dr["DateTo"].ToString(),
toWhen = dr["Towhen"].ToString(),
reason = dr["Reason"].ToString(),
remarks = dr["Remarks"].ToString(),
sStatus = dr["sStatus"].ToString(),
dateApprove = dr["approve_date"].ToString(),
totalDays = dr["totalDays"].ToString(),
grpID = dr["groupID"].ToString(),
});
}
dr.Close();
connection.Close();
}
JavaScriptSerializer jss = new JavaScriptSerializer();
string jsn = jss.Serialize(mylist);
return jsn;
}
JavaScript
function loadLeaveRequest(isOwn) {
if ($('#tblList').hasClass('dataTable')) {
$('#tblList').dataTable().fnDestroy();
$('#tblList').removeClass('dataTable');
}
var xdata = "{'empID':'" + STATUS.USER_ID //sa pgfifilter ng group kailang grpID lang ang makuha sa DB
+ "','StatID':'" + $('#cboStatus option:selected').val() //hindi na kailangan gumamit ng stored Procedure.
+ "','isOwn':'" + isOwn //gumawa ng CommandType.Text sa bagong SELECT Clause
+ "'}";
$.ajax({
type: 'POST',
url: '../WebService/wsLeaveRequest.asmx/loadLeaveRequests',
dataType: 'json',
data: xdata,
contentType: 'application/json; charset=utf-8',
success: function (response) {
$('#tbodyList').empty();
var cells = eval("(" + response.d + ")");
for (var i = 0; i < cells.length; i++) {
var txtFromWhen;
var txtToWhen;
var disable = '';
if (cells[i].fromWhen == 2) {
txtFromWhen = "(AM)";
}
else if (cells[i].fromWhen == 3) {
txtFromWhen = "(PM)";
}
else {
txtFromWhen = "";
}
if (cells[i].toWhen == 2) {
txtToWhen = "(AM)";
}
else if (cells[i].fromWhen == 3) {
txtToWhen = "(PM)";
}
else {
txtToWhen = "";
}
var sStat; //Convertion of int to String
if (cells[i].sStatus == 1) {
sStat = "Approved";
disable = '';
}
else if (cells[i].sStatus == 2) {
sStat = "Denied";
disable = '';
}
else if (cells[i].sStatus == 3) {
sStat = "Cancelled";
disable = 'disabled'
}
else {
sStat = "Pending";
disable = '';
}
$('#tbodyList').append('<tr>'
+ '<td style = "font-size:11px; text-align:center;"><input type = "checkbox" ' + disable + '></td>'
+ '<td style = "font-size:11px; text-align:center;">' + cells[i].reqID + '</td>'
+ '<td style = "font-size:11px; text-align:center;">' + cells[i].fname + '</td>'
+ '<td style = "font-size:11px; text-align:center;">' + cells[i].leaveType + '</td>'
+ '<td style = "font-size:11px; text-align:center;">' + cells[i].dateFrom.substring(0, 10) + txtFromWhen + '~' + '<br>' + cells[i].dateTo.substring(0, 10) + txtToWhen + '</td>'
+ '<td style = "font-size:11px; text-align:center;">' + cells[i].totalDays + '</td>'
+ '<td style = "font-size:11px; text-align:center; word-wrap: break-all;">' + cells[i].reason + '</td>'
+ '<td style = "font-size:11px; text-align:center; word-wrap: break-word;">' + cells[i].remarks + '</td>'
+ '<td style = "font-size:11px;">' + cells[i].dateFiled + '</td>'
+ '<td style = "font-size:11px; text-align:center;">' + sStat + '</td>'
+ '<td style = "font-size:11px; text-align:center;">' + cells[i].dateApprove + '</td>'
+ '<td style = "font-size:11px; text-align:center;">' + cells[i].grpID+ '</td>'
+ '</tr>');
}
},
error: function (error) {
console.info(error);
},
complete: function () {
$('#tblList').dataTable({
"order": [],
"destroy": true,
"columnDefs": [{
"targets": 'no-sort',
"orderable": false,
}]
}).end();
$('#tblList').css('width', '100%');
}
});
}
HTML
<table id = "tblList" class = "table border bordered hovered">
<thead>
<tr>
<td style = "font-size:10px; text-align:center;"><input type = "checkbox" id = "cbAll"/></td>
<td style = "font-size:10px; text-align:center;">Request No.</td>
<td style = "font-size:10px; text-align:center;">Employee</td>
<td style = "font-size:10px; text-align:center;">Leave Type</td>
<!--<td style = "font-size:10px; text-align:center;" hidden>Group ID</td>-->
<td style = "font-size:10px; text-align:center;">Date of Leave</td>
<td style = "font-size:10px; text-align:center;">Total Days</td>
<td style = "font-size:10px; text-align:center;">Reason</td>
<td style = "font-size:10px; text-align:center;">Remarks</td>
<td style = "font-size:10px; text-align:center;">Date Filed</td>
<td style = "font-size:10px; text-align:center;">Status</td>
<td style = "font-size:10px; text-align:center;">Date Approved/Cancelled</td>
</tr>
</thead>
<tbody id = "tbodyList">
</tbody>
</table>
Хранимая процедура
CREATE PROCEDURE [dbo].[spLoadLeaveRequest]
@empID INT = 101,
@Stat INT = 99,
@Own INT = 0
AS
BEGIN
DECLARE @SqlStr VARCHAR(1000)
DECLARE @SqlWhere VARCHAR(500)
SET @SqlStr = 'select a.reqID, a.save_date, b.first_name, c.leaveAlias, d.groupID, CONVERT(VARCHAR(10),a.DateFrom,101) DateFrom, a.FromWhen,
CONVERT(VARCHAR(10),a.DateTo,101) DateTo, a.ToWhen, a.totalDays, a.Reason,a.Remarks, a.sStatus,
a.approve_date, a.sStatusAdmin,a.approve_dateAdmin
from tblLeaveRequest a
join userinfo b on a.Save_User = b.empID
join tblLeaveType c on a.typeOfLeave=c.leaveID
join tblGroup d on b.groupNo = d.groupID
WHERE YEAR(a.save_date) = YEAR(GETDATE()) '
IF (SELECT userType FROM userinfo WHERE empID = @empID) = 1
BEGIN
SET @SqlWhere = ' AND b.empID = ' + CAST(@empID AS VARCHAR) + ''
END
ELSE IF (SELECT userType FROM userinfo WHERE empID = @empID) = 2
BEGIN
IF @Own = 1
BEGIN
SET @SqlWhere = ' AND b.empID = ' + CAST(@empID AS VARCHAR) + ''
END
ELSE
BEGIN
SET @SqlWhere = ' AND b.groupNo = ' + CAST((SELECT groupNo FROM userinfo WHERE empID = @empID) AS VARCHAR) + ' AND b.empID <> ' + CAST(@empID AS VARCHAR) + ''
END
END
ELSE IF (SELECT userType FROM userinfo WHERE empID = @empID) = 3
BEGIN
IF @Own = 1
BEGIN
SET @SqlWhere = ' AND b.empID = ' + CAST(@empID AS VARCHAR) + ''
END
ELSE
BEGIN
SET @SqlWhere = ' AND b.empID <> ' + CAST(@empID AS VARCHAR) + ''
END
END
IF @Stat = 99
BEGIN
SET @SqlWhere = @SqlWhere
END
ELSE
BEGIN
SET @SqlWhere = @SqlWhere + ' AND a.sStatus=' + CAST(@Stat AS VARCHAR) + ''
END
EXEC(@SqlStr + @SqlWhere + ' ORDER BY a.reqID DESC')
END
Может ли кто-нибудь помочь мне с этим. Мой код не возвращает все значения в таблице данных.
может кто-нибудь найти ошибку в моем коде? он имеет вывод, но не все поля базы данных были возвращены, последний элемент "grpID" не отображается в таблице.
Я знаю, что у кого-то есть возможность решить эту проблему, так что, пожалуйста, помогите мне, ребята ...
Да, это так. Я удалил колонку с комментариями. теперь они равны, но имеют одинаковый статус вывода.
Таким образом, Да, это так означает, что 12 столбцов заголовка (без комментариев) равны 13 столбцам данных; понятно. В любом случае, в чем разница между groupID и grpId?
groupID - это переменная, которая будет улавливать значение grpID, которое является полем базы данных.
Вы помещаете их оба в свой tbodyList в виде столбцов. Один в качестве первого столбца, а другой в качестве последнего столбца. Но вам кажется, что вы заинтересованы только в защите плохо сконструированного кода, чем в моей помощи. Удачи.
Спасибо, сэр. :) Уже исправил :) Спасибо за Время: D God Bless



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Макет столбца заголовка и количество столбцов не соответствуют модели данных, возвращаемой сервером.