Member 12583662 Ответов: 1

Как проверить, что полный столбец равен нулю или не используется viewdata


Привет у меня есть что-то вроде

ViewData["getServices"] = (from p in dbObj.gen_crm_consolidate
                                       where p.service_id == sID && p.pdate >= sDate.Date && p.pdate <= eDate.Date
                                       orderby p.pdate descending
                                       select p).ToList();
return PartialView("_ServicePartial", ViewData["getServices"]);


и ввиду этого я использую это как
var q = (List<DM.Models.DB.gen_crm_consolidate>)(ViewData["getServices"]);
                           foreach (var item in q)
                           {


Он работает совершенно нормально. У меня есть почти 10-12 столбцов в ViewData, и я просто хочу проверить, пуст ли полный столбец или нет, и если он пуст, я не буду показывать его в поле зрения.

Что я уже пробовал:

Я попытался получить доступ к значению q из viewdata, но ничего не произошло.

Karthik_Mahalingam

что такое полная колонка ?
не ясно, предоставьте больше информации.

Member 12583662

foreach (var item in q)
{


@Преобразовать.ToString(строка.Формат ("{0:dd/MM / yyyy}", @item.pdate))
@пункту.active_base
@пункту.charged_base
@пункту.total_calls
@пункту.total_mou
@пункту.daily_ivr_unique_user
@пункту.total_pulse
@item.actrevenue
@пункт.Rrevenue
@пункту.total_revenue

}

Member 12583662

Код действия уже дан. и вот такой вид. Просмотр изменений на основе различных выбранных служб. Для некоторых active_base равно null, а для них есть значения. Я хочу проверить, является ли весь столбец нулевым, чем он не должен быть виден на экране.

Karthik_Mahalingam

всего столбца или строки ?

Member 12583662

он будет извлекать и показывать данные по дате с 1-го по 30-е число. хотите исключить, если весь столбец равен нулю.

Karthik_Mahalingam

весь ряд одного столбца?

Member 12583662

Да, все строки одного столбца похожи на active_base. Если он не имеет значения во всех датах, его следует исключить. или спрятан.

Karthik_Mahalingam

вы показываете в сетке?
показать скриншот

Member 12583662

Для этого я использую DataTable. Как внизу столбца вызывает у всех 0
Дата основания Базы2 звонков
08-02-2017 2333 3 0
07-02-2017 2332 3 0
06-02-2017 2331 3 0
05-02-2017 2328 1 0
04-02-2017 2325 3 0
03-02-2017 2312 2 0
02-02-2017 2311 2 0
01-02-2017 2309 2 0
31-01-2017 2309 2 0
30-01-2017 2307 2 0

Karthik_Mahalingam

c# datatable или jquery datatable ?

Member 12583662

В jQuery

Karthik_Mahalingam

покажите свой код datatable..

Karthik_Mahalingam

вы используете пагинацию?

Member 12583662

да

Member 12583662

Основной код уже упоминался здесь. Для объекта DataTable я использовал только класса jQuery, чтобы применить таблицу особенности. Так что никакого специального кода в этой части нет.

Karthik_Mahalingam

проверьте мое приведенное ниже Решение.

1 Ответов

Рейтинг:
9

Karthik_Mahalingam

обратитесь к этому примеру и постройте его.
Столбцы местоположение и возраст пусты и имеют значения 0 соответственно.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   
    <link href="https://cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css" rel="stylesheet" />
    <script src="jquery.js"></script>
    <script src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
    

    <script>
        var table;
        $(document).ready(function () {
             table = $('#example').DataTable({                
                "paging": false
             });
             var columnsCount = table.columns()[0].length;
             var data = table.rows().data();
             var columnIndexToHide = [];
             for (var j = 0; j < columnsCount; j++) {
                 
                 var icount = 0;
                 for (var i = 0; i < data.length; i++) {
                     var val = data[i][j];                      
                     if (val != '' && val != '0') // hide for empty and column having 0 value.
                         break;
                     else
                     {
                         icount++;
                         if (icount == data.length)
                         { columnIndexToHide.push(j); break;}                         
                     }
                     
                 }
             }
             for (var i = 0; i < columnIndexToHide.length; i++) {
                 table.column(columnIndexToHide[i]).visible(false)
             } 
        });
       
    </script> 
    </head>
<body>
    
     
    <table id="example" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Location</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        
        <tbody>
            <tr>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td></td>
                <td>0</td>
                <td>2011/04/25</td>
                <td>$320,800</td>
            </tr>
            <tr>
                <td>Garrett Winters</td>
                <td>Accountant</td>
                <td></td>
                <td>0</td>
                <td>2011/07/25</td>
                <td>$170,750</td>
            </tr>
            <tr>
                <td>Ashton Cox</td>
                <td>Junior Technical Author</td>
                <td></td>
                <td>0</td>
                <td>2009/01/12</td>
                <td>$86,000</td>
            </tr>
            <tr>
                <td>Cedric Kelly</td>
                <td>Senior Javascript Developer</td>
                <td></td>
                <td>0</td>
                <td>2012/03/29</td>
                <td>$433,060</td>
            </tr>
            
        
        </tbody>
    </table>
    

</body> 
</html>


Member 12583662

Привет, Картик, во-первых, большое спасибо, что он отлично работает. Но можем ли мы написать тот же код в той части, где мы упомянули код TH и TR. или там есть какая-то сложность для написания кода.

Karthik_Mahalingam

используйте эту концепцию, и небольшая модификация произведет эффект.

Member 12583662

это работает, но мой вопрос в том, Могу ли я написать какую-то логику только в виду.

Karthik_Mahalingam

Да

Member 12583662

Можете ли вы помочь, так как этот код занимает много времени из-за нескольких циклов for.
Требуется любое другое решение.

Karthik_Mahalingam

это произойдет за доли секунды.
у вас есть teamviewer?

Member 12583662

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

Karthik_Mahalingam

А теперь я иду спать
Проверю Томо вечером

Member 12583662

Привет Картик

Karthik_Mahalingam

привет

Member 12583662

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

Karthik_Mahalingam

просто пинг у меня на 8, Уил поделиться подробностями.

Member 12583662

спасибо дружище

Karthik_Mahalingam

добро пожаловать

Member 12583662

Привет Картик

Karthik_Mahalingam

привет

Member 12583662

любое удостоверение личности Skype

Karthik_Mahalingam

Пингуйте меня через 10 минут . Я за

Member 12583662

Привет

Karthik_Mahalingam

привет

Karthik_Mahalingam

..

Member 12583662

запрос отправлен по скайпу

Karthik_Mahalingam

его gmail

Member 12583662

почта отправлена.

Karthik_Mahalingam

ладно