2017-12-06 4 views
1

私のプロジェクトでは、1人1人が毎週自分のスケジュールを持っているので、整数のリストを返すWebサービスを実装しました指定された従業員の勤務日を表す、このすべての主なアイデアは、私が週の他の日に予定を作成するのを防ぐ必要があるということです。日付ピッカーからその日を隠す方法は?またはこれを行う別の方法がある場合は?Webサービスからの応答に基づいて日付ピッカーの曜日を無効にする方法

ウェブサービス

[WebMethod] 

    public void getWorkDays(int id) 
    { 
     WorkDays wd = new WorkDays(id); 

     List<Days> workDays = new List<Days>(); 
     String docSch_query = "select * from workDays where empId = " + id + " and status=1"; 
     DBConnect conn = new DBConnect(); 
     DataTable dt = conn.select(docSch_query); 

     foreach (DataRow r in dt.Rows) 
     { 
      switch (r["dayId"].ToString()) 
      { 
       case "1": 
        workDays.Add(new Days(1,"sat")); 
        break; 
       case "2": 
        workDays.Add(new Days(2, "sun")); 
        break; 
       case "3": 
        workDays.Add(new Days(3, "mon")); 
        break; 
       case "4": 
        workDays.Add(new Days(4, "tus")); 
        break; 
       case "5": 
        workDays.Add(new Days(5, "wed")); 
        break; 
       case "6": 
        workDays.Add(new Days(6, "thu")); 
        break; 
      } 
     } 

     JavaScriptSerializer js = new JavaScriptSerializer(); 
     Context.Response.Write(js.Serialize(workDays));   
    } 

日付ピッカー

$(document).ready(function() { 

     var dates=$.ajax({ 
      type: "POST", 
      url: "getdays.asmx/getWorkDays", 
      data: {id:<%#int.Parse(Session["appWith"].ToString())%>}, 
      dataType: "json", 

      success: function (data) { 

       return data.d; 
      } 
     }); 

     $('#edob').datepicker({ 

      firstDay: 3, 
      beforeShowDay: function (date) { 
       var available = $.inArray(date.getDay(), dates['int']) > -1; 

       if (available) { 
        return [1]; //return available date 
       } 
       else { 
        return [0]; //return not available 
       } 
      } 
     }); 
    }) 

答えて

0
私は私の質問のための解決策を見つけた

...

$(document).ready(function() { 
     var dates = $.parseJSON(
      $.ajax({ 
       type: "POST", 
       url: "getdays.asmx/getWorkDays", 
       data: { id: <%=int.Parse(Session["appWith"].ToString())%> }, 
       dataType: "json", 
       async: false 
      }).responseText); 

     $('#edob').datepicker({ 

      firstDay: 3, 
      beforeShowDay: function (date) { 
       var a =[]; 
       var weekend = false; 
       for (i = 0; i < dates.length; i++) { 
        a.push(dates[i].Id); 
       } 
       var weekend = date.getDay() == 5 || date.getDay() == 6 || !($.inArray(date.getDay(),a)>-1); 
       return [!weekend, weekend ? 'myweekend' : '']; 
      } 
     }); 
    }); 
関連する問題