0

アイデアは、別の日付を選択できる場所からカレンダーを制御できることです。選択した日付に基づいて、WCF サービス (GetDealData()) への ajax 呼び出しを行い、いくつかのデータ セットをフェッチします。誰かここで何が悪いのか見てもらえますか? カレンダー コントロールで別の日付を選択した場合でも、OnDateChange メソッドを実行するたびに、GetRemoteData() メソッドが同じ日付 (2012 年 10 月 25 日) を渡す理由を理解しようとして、2 日間、少し頭がおかしくなりました。jsonデータが適切に割り当てられていないことと関係がありますか?

$('#calendarContainer').kendoCalendar({
        format: "dd/MM/yyyy",
        culture: "en-GB",
        change: onDateChange
});

function onDateChange() {
        var date = kendo.toString(this.value(), 'dd/MM/yyyy');
        var bob = GetRemoteData(date);
        $("#grid").data("kendoGrid").dataSource.data(bob);
        $("#grid").data("kendoGrid").dataSource.read();          
    }

関数 GetRemoteData(日付) {

        var chosenDate;

        if (typeof date=="undefined")
        {
            alert("it is null " + date);
            chosenDate = "25-10-2012";
        }
        else {
            alert("it is not null " + date);               
            chosenDate = date;
        }

        source = new kendo.data.DataSource({
         //   autoSync:true,
            transport: {
                read: {
                    type: "GET",
                    url: "http://localhost:35798/RestServiceImpl.svc/GetDealData",
                    dataType: "jsonp",
                    contentType: "application/json; charset=utf-8",
                    cache: false,
                    data: {
                        startDate:chosenDate
                    }
                }

            },
            schema: {
                model: {
                    fields: {
                        DealNumber: { type: "string" },
                        DealIssuer: { type: "string" },
                        Ticker: { type: "string" },
                        DealType: { type: "string" },
                        DealValue: { type: "number" },
                        DealStatus: { type: "string" },
                        DealPricingCompletionDate: { type: "date" }
                    }
                }
            },
            pageSize: 16
        });
        return source;
    }





    WCF Methods
    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json,
      BodyStyle = WebMessageBodyStyle.WrappedRequest,
      UriTemplate = "GetDealData?startDate={startDate}")]
    List<DealData> GetDealData(string startDate);


    public List<DealData> GetDealData(string startDate)
    {
        CultureInfo culture = new CultureInfo("en-GB");                                 
        List<DealData> model =                      Service.GetDealData(Convert.ToDateTime(startDate,culture));         
        return model;
    }       
4

1 に答える 1