2016-04-04 9 views
0

tıklayın değişen dayalı veri tabanından önceki gün veri alın bir üs tarihi.sık butonuna tarih ben 2 düğme Ön ve Arka ve bir div

My Geri ve ön düğmesi: geri düğmesini tıkladığında sonra ben önceki 24 saat veri getirmek için ve ileriye düğmeyi tıklamak i ileri 24 saat veri getirmek istiyorum istiyorum

<button type="button" id="btnForward" class="btn btn-default btn-xs">Forward</button> 

<button type="button" id="btnBack" class="btn btn-default btn-xs">Forward</button> 

.

    sayfa yüklemelerinde
  • geçerli tarih: tarih olmalıdır 26/2/2016 - 25/2/2016
  • zaman Geri düğmesi 1 defa tıkladığında: 25/2/2016 - 24/2/2016
  • zaman Geri düğmesi 2 defa tıkladığında: 24/2/2016 - 23/2/2016
  • İleri düğmesi 1 defa tıkladığında: 25/2/2016 - 24/2/2016
  • kullanıcı İleri düğmesine 2 kez tıklanır: 26/2/2016 - 25/2/2016

Ayrıca, döndürülmüş olan temel tarihten daha büyük tarihleri ​​de önlemek istiyorum. geri düğmesi için doğru veri elde etmek yönetmek ama şimdi ne zaman kullanıcı verilerini almak için mücadele

public ActionResult Merge(string actionType=null,int count=0) 
{ 
    var date1 = new DateTime(2016, 2, 26,16,27,57); 
    DateTime Start= new DateTime(); 
     if(!string.IsNullOrEmpty(actionType)) 
     { 
      date1= date1.AddDays(-(count)); 
      if (actionType == "Back") 
       Start = date1.AddDays(-1); 
      else 
      { 
       Start= date1.AddDays(1); 
      } 

     } 
     else 
      Start = date1.AddDays(-1); 
    var data = context.MyTable.Where(c => c.Date.Value > Start&& c.Date.Value <= date1); 
} 

ı başarıyla olmuştur Üstü kodu:

<script type="text/javascript"> 
    var count = 0; 
    $(document).ready(function() { 
     MyFunction(Actions); 
    } 
    function MyFunction(Actions) { 
     // My ajax function call on Controller. 
     Parameters:Actions,count 
    } 
    $("#btnBack").click(function() { 
     Actions = "Back"; 
     count++; 
     MyFunction(Actions); 
    }); 
    $("#btnForward").click(function() { 
     Actions = "Forward"; 
     // count--; 
     MyFunction(Actions); 
     // count++; 
    }); 
</script> 

My Denetleyici:

Bu

benim mantık İleri butonuna tıklarsanız doğru tarih alamıyorum. Birisi bana bunun için yardım edebilir mi?

+0

bir gün için değerleri almaya çalışırken ya da 24 saat boyunca Are tıklandığı dayalı days ve artırma/eksiltme için bir javascript değişkeni başlatmak belirli bir noktadan önceki süre? (bunun neden kullanıldığını net değil "var date1 = yeni DateTime (2016, 2, 26,16,27,57);) –

+0

@StephenMuecke: Bunu sistem tarihim olarak düşünün: var date1 = new DateTime (2016, 2, 26,16,27,57) Şimdi sayfam yüklendiğinde, bu tarihten itibaren 24 saat öncesine ait verileri sorgulayacağım, yani 25/2/2016 ve 26/2/2016 verilerini zamana göre 16:27:57 Pm'den 16'ya : 26: 57 –

+0

@StephenMuecke: Bu tarih için kullanıyorum çünkü bu tarih için tablomda veri var sadece –

cevap

1

Denetleyici yönteminin, taban tarihinize göre gün (ler) i belirtmek için yalnızca bir parametre, bir int olması gerekir.

public ActionResult Merge(int days) 
{ 
    if (days > 0) // protect against malicious users 
    { 
     // return an error 
    } 
    var baseDate = new DateTime(2016, 2, 26,16,27,57); 
    DateTime EndDate = baseDate.AddDays(days); 
    DateTime StartDate = basedate.AddDays(days - 1) 
    var data = context.MyTable.Where(c => c.Date > StartDate && c.Date <= EndDate); 
    .... 
} 

Sonra görünümünde, düğme

// initially disable the forward button 
<button type="button" id="forward" class="btn btn-default btn-xs" disabled="disabled">Forward</button> 
<button type="button" id="back" class="btn btn-default btn-xs">Back</button> 

<script> 
    var days = 0; 
    var forward = $('#forward'); 
    $('#forward').click(function() { 
     days++; 
     if (days == 0) { 
      forward.prop('disabled', true); 
     } 
     // call ajax function and pass value of `days` to the controller 
    }); 
    $('#back').click(function() { 
     days--; 
     forward.prop('disabled', false); 
     // call ajax function and pass value of `days` to the controller 
    }); 
+0

Kodunuzu test edeyim ama çözümünüzü çok özledim –

+0

Tamam, çözümünüzü test ettim ve gayet iyi çalışıyor ama sadece sizlere karşılaştırma yaptığım alanın tarih ve değerler olduğu 1 şey sormak istiyorum bu benim tablolarımda: 2016-02-26 19: 34: 39.000,2016-02-26 19: 34: 07.000,2016-02-26 19: 33: 36.000 –

+0

Şimdiki sistem tarih ve saatinden bahsediyorsam Kullandığım gibi: 26/2/2012 16:27:57 24 saat önceki güne ait verileri tam olarak bu sefer 16:27:57 gibi alın ve o zaman bu karşılaştırmayı kullanmalıyım. : c.Date.Value> Start && c.Date.Value <= date1 –