2015-09-15 2 views
-1

Я хочу добавить строку динамически в datatable на pageload.Как динамически добавить строку в jquery Datatable и уточнить столбцы для отображения?

Я хочу разбить данные, поступающие из запроса ajax для данных в две строки (вторая строка добавляется динамически к строке, если условие истинно).

вот пример, который должен сделать его более понятным.

<table> 
<thead> 
<tr> 
    <td>Name</td> 
    <td>City</td> 
    <td>Work</td> 
    <td>Address</td> 
    <td>Pin</td> 
    <td style="display:none">Mobile</td> 
    <td style="display:none">Email</td> 
    <td style="display:none">Profession</td> 
</tr> 
</thead> 
</table> 

тд с атрибутом стиля не должны быть показаны вместо я хочу добавить еще одну строку, чтобы показать эти три поля.

Мой вопрос:

1), который обратный вызов я должен использовать, чтобы добавить строку в случае, если выполняется условие (условие является профессии == «IT») только затем добавить строку ниже этой строки которого условие выполнено.

2) Как я могу скрыть все данные из четырех столбцов (я скрываю только заголовок, но не данные, он добавит к самому телу таблицы).

В настоящее время я использую «столбцы», чтобы скрыть столбец, но он не работает.

добавляет дополнительный заголовок, а данные внутри тела не загружаются.

"aoColumns": [ 
       { 
       "sName": "Mobile", 
       "sClass": "hidden", 
       "bSortable": false 
       }, 
       { 
       "sName": "Email", 
       "sClass": "hidden", 
       "bSortable": false 
       }, 
        { 
        "sName": "Profession", 
        "sClass": "hidden", 
        "bSortable": false 
        },         
       ], 

Мой скрытый класс прост

.hidden{ 
display:none; 
} 

Примечание: Это стороне сервера таблицы.

Спасибо заранее

EDIT:

стороне сервера Код

 public ActionResult SummaryAjax(JQueryDataTableParamModel param) 
      { 
    int totalrecords = 0; 
       string username = Convert.ToString(Session["userName"]); 
       string month = this.Request.QueryString["month"]; 
       string year = this.Request.QueryString["year"]; 
       DateTime currentDate = Convert.ToDateTime("2015-09-01"); 
       if (!string.IsNullOrEmpty(month) && !string.IsNullOrEmpty(year)) 
       { 
        currentDate = Convert.ToDateTime(year + "-" + month + "-01"); 
       } 
       var objparcelData = db.GetWIPForUserProc(username.ToLower(), currentDate).ToList(); 

totalrecords = objparcelData.Count(); 
       if (param.iDisplayLength != -1) 
        objparcelData = (objparcelData.Skip(param.iDisplayStart).Take(param.iDisplayLength)).ToList(); 
       var resultdata = (from p in objparcelData 
            select new GetWIPForUserProc_Result 
            { 
             Job = p.Job, 
             JobDescription = p.JobDescription, 
             Customer = p.Customer, 
             PreviousContractValue = p.PreviousContractValue, 
             ContractValue = p.ContractValue, 
             EstimatedFinalCost = p.EstimatedFinalCost, 
             EstimatedGrossMargin = p.EstimatedGrossMargin, 
             CostToDate = p.CostToDate, 
             PercentComplete = p.PercentComplete, 
             MarginToDate = p.MarginToDate, 
             RequisToDate = p.RequisToDate, 
             ExcessOfCostEarnings = p.ExcessOfCostEarnings, 
             MarginPercent = p.MarginPercent, 
             ChangeContractValue = p.ChangeContractValue, 
             ChangeEstimatedFinalCost = p.ChangeEstimatedFinalCost, 
             Backlog = p.Backlog, 
             Add1 = p.Add1, 
             ApprovCC = p.ApprovCC, 
             BillAdd1 = p.BillAdd1, 
             BZCode = p.BZCode, 
             isManualEntry = p.isManualEntry 

            }).ToList(); 

       var result = from p in resultdata 
          select new[] { Convert.ToString(p.Job), 
              Convert.ToString(p.JobDescription), 
              Convert.ToString(p.Customer), 
              Convert.ToString(p.PreviousContractValue), 
              Convert.ToString(p.ContractValue), 
              Convert.ToString(p.EstimatedFinalCost), 
              Convert.ToString(p.EstimatedGrossMargin), 
              Convert.ToString(p.CostToDate), 
              Convert.ToString(p.PercentComplete), 
              Convert.ToString(p.MarginToDate), 
              Convert.ToString(p.RequisToDate), 
              Convert.ToString(p.ExcessOfCostEarnings), 
              Convert.ToString(p.MarginPercent), 
              Convert.ToString(p.ChangeContractValue), 
              Convert.ToString(p.ChangeEstimatedFinalCost), 
              Convert.ToString(p.Backlog), 
              Convert.ToString(p.Add1), 
              Convert.ToString(p.ApprovCC), 
              Convert.ToString(p.BillAdd1), 
              Convert.ToString(p.BZCode), 
              Convert.ToString(p.isManualEntry) 

                     }; 
} 
return Json(new 
       { 
        sEcho = param.sEcho, 
        iTotalRecords = totalrecords, 
        iTotalDisplayRecords = totalrecords, 
        aaData = result, 

       }, 
       JsonRequestBehavior.AllowGet); 

ответ

0

Начну с 2) первым. Столбцы в datatables имеют индекс, а не по имени. У вас имеется только три столбца, поэтому только первые три столбца будут иметь назначенный им класс - в данном случае - «скрытый» класс. Чтобы скрыть PIN-код, мобильная, электронную почту и профессию столбцы, вы должны подробно описать все столбцы, в следующих шоу (обратите внимание, что номер только показать, что имена не соответствуют идентификаторам):

"aoColumns": [ 
{ "sName": "0Name", "bSortable": false, "sClass": "" }, 
{ "sName": "1City", "bSortable": false, "sClass": "" }, 
{ "sName": "2Work", "bSortable": false, "sClass": "" }, 
{ "sName": "3Address", "bSortable": true, "sClass": "" }, 

{ "sName": "4Pin", "bSortable": true, "sClass": "hidden" }, 
{ "sName": "5Mobile", "bSortable": true, "sClass": "hidden" }, 
{ "sName": "6Email", "bSortable": false, "sClass": "hidden" }, 
{ "sName": "7Profession", "bSortable": false, "sClass": "hidden" } 
] 

Насколько 1) идет - можете ли вы немного разобраться? Почему серверная сторона не добавляет строку на основе условия?

+0

Я не знаю, можем ли мы добавить строку с серверной стороны? Я использую asp.net MVC –

+0

Вы отметили, что это была серверная таблица. Таким образом, ваш код на стороне сервера должен проверить условие, а затем добавить строку в набор результатов перед возвратом Json. Вы должны будете отправить серверный код для меня, чтобы иметь возможность помочь вам с добавлением строки, но она должна быть довольно простой. – Aeroradish

+0

Обратите внимание, что поля разные, но результат должен быть таким же. Просто возьмите все четыре поля, чтобы добавить их в новую строку. –

Смежные вопросы