2016-07-21 10 views
-1

私は機能にチェックボックスのドロップダウンを持っています。したがって、ユーザは、1つ、複数の、またはゼロを選択することができる。ユーザーが1つまたは複数を選択すると、すべて正しいことになります。しかし、ユーザーが何も選択しないと、私はnullポインタの例外があります。この例外を処理するために、すべての結果を表示するために何かを選択しなかった場合(すべてを選択している場合のように)、デフォルトで作成したいと思います。どうやってやるの?ここでチェックボックスのデフォルト値を取得

はJS機能は

$(function() { 
     $("#datepicker").datepicker({ 
      //defaultDate: "+1w", 
      changeMonth: true, 
      changeYear: true, 
      numberOfMonths: 1, 
      minDate: "01/01/2008" 
     }) 
     .datepicker('setDate', new Date()); 
     $("button.action").click(function() { 
      //var users = new Array(); 
      var date = $('#datepicker').val().toString(); 
      var selected_values = new Array(); 
      //var userName = $(' .checked:checked').val(); 
      $(document).ready(function() { 
       selected_values = []; // initialize empty array 
       $(".checked:checked").each(function() { 
        selected_values.push($(this).val()); 
       }); 
      }); 
      $.ajax({ 
       url: 'EmployeeDate', 
       datatype: "application/json", 
       traditional:true, 
       data: { 
        lstUserName: selected_values, 
        strDate: date 
       }, 
       success: function (data, textStatus, jqXHR) { 
        $('#DataUser').html(data); 
       }, 
       error: function() { 
        console.log("error handler when ajax request fails... "); 
       }, 

      }); 
     }); 
    }); 

であり、これはコントローラです:

public IEnumerable<DateTime> getInfoByDate(string strDate, string[] lstUserName) 
{ 
    CareDB context = new CareDB(); 
    IEnumerable<DateTime> lst = null; 
    List<DateTime> model = new List<DateTime>(); 

    if (lstUserName != null) 
    { 
     foreach (string user in lstUserName) 
     { 
      SqlParameter userName = new SqlParameter("@EmployeeName", user); 
      SqlParameter Date = new SqlParameter("@Date", strDate); 
      object[] parameters = new object[] { Date, userName }; 

      model.Add(context.ReleaseDate.SqlQuery("_UserInformationByDate @Date, @EmployeeName", parameters).ToList().FirstOrDefault()); 
     } 
    } 
    else 
    { 
     SqlParameter Date = new SqlParameter("@Date", strDate); 
     SqlParameter userName = new SqlParameter("@EmployeeName", lstUserName); 

     object[] parameters = new object[] { Date, userName }; 

     model = context.ReleaseDate.SqlQuery("_UserInformationByDate @Date, @EmployeeName", parameters).ToList(); 
    } 
    context.Dispose(); 
    context = null; 
    return model; 
} 

答えて

1

この

 $(document).ready(function() { 
        selected_values = []; // initialize empty array 

        // nothing selected so push all value regadless 
        if($(".checked:checked").length == 0) 
        { 
        $(".checked").each(function() { 
         selected_values.push($(this).val()); 
         }); 
        } 
       else 
       { 
        $(".checked:checked").each(function() { 
         selected_values.push($(this).val()); 
        }); 
        }); 
       } 
をお試しください
関連する問題