Friday, 31 January 2014

Bind dropdown with json response

 function BindHrs() {

        $.ajax({
            type: "POST",
            url: "Webservices/manage-orders.asmx/BindHrs",
            data: "{'lOutletId':'" + '<%= OutletId %>' + "', 'pOrderdate':'" + $('#<%= hfSelectDate.ClientID %>').val() + "','sOrderType':'" + $('#<%= ddlOrderType.ClientID %>').val() + "'}",
            contentType: "application/json",
            dataType: "json",
            success: function (msg) {              
                var evals = msg.d.split(',');              
                for (var i = 0; i < evals.length; i++) {
                    var myArray = evals[i].split('-');

                    $("#<%= ddlHrs.ClientID %>").append($("<option></option>").val(myArray[1]).html(myArray[0]));
                }
            },
            failure: function (msg) {
                alert('Sorry no record found');
            }

        });
    }


 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    [WebMethod]
    public string BindHrs(string lOutletId, string pOrderdate, string sOrderType)
      {
          System.Text.StringBuilder builder = new System.Text.StringBuilder();
          string Weekday = Convert.ToString(Convert.ToDateTime(pOrderdate).DayOfWeek);
          List<Outlet.OutletOperatingHour> outOptHr = Outlet.OutletOperatingHour.PopulateData(Convert.ToInt64(lOutletId), sOrderType, Weekday.Substring(0, 3));//(Outlet.WeekDays)Enum.Parse(typeof(Outlet.WeekDays), Weekday.Substring(0,3))
          string opens = Convert.ToString(outOptHr.Min(m => m.sOpenTime));
          string close = Convert.ToString(outOptHr.Max(m => m.sCloseTime));
          DataTable dtTime = Outlet.TimeValues();
          List<String> strKey = new List<String>();
          var dt = dtTime.AsEnumerable().Select(row => new { Text = Methods.Convert24HrsTo12HrsFormat(row.Field<string>("Value")), Value = row.Field<string>("Value") }).Where(p => Convert.ToInt32(p.Value) >= Convert.ToInt32(opens) && Convert.ToInt32(p.Value) <= Convert.ToInt32(close));
       
          foreach (var st in dt)
          {            
              builder.Append(""+st.Text +"-"+st.Value+"");
              builder.Append(",");
          }
          return builder.ToString().TrimEnd(',');

      }

No comments:

Post a Comment