2016-03-20 24 views
0

Bu sayfa temel olarak kullanıcının tarih isteğini alır ve bu tarihte bazı seçme sorguları yapar (ancak db kısmı önemli değildir) . Bir metin kutusu (txtDate) ve txtDate içinde aynı sayfaya yönlendirmek için kullanılan bir düğme (setDate), URL'deki Tarih parametresi olarak kullanılır. PageLoad'da, geçerli QueryString [Tarih] 'i alıp txtDate'e geri yüklemek istiyorum (böylece kullanıcı hangi tarihin seçildiğini görebilir), ancak bu metin kutusunu yeni birime ayarladığımda otomatik olarak eski QueryString'i isteyecektir. rica ediyorum Beni şaşırtıyor. ASP.NET'teki farklı yönlendirme parametreleriyle aynı sayfaya yönlendirme

Bu

Page_Load geçerli:

String dateInput = null; 
    dateInput = Request.QueryString["Date"]; 
    txtDate.Text = dateInput.Replace("-", "/"); //if I just comment this out, it works perfectly fine 

Ve bu düğme tıklama: Ben bunu çok iyi açıklayan ediyorsam bilmiyorum

String s = null; 
    s = txtDate.Text.Replace("/", "-"); 
    if (s == "") //if empty sends the current date 
    { 
     Response.Redirect("Default.aspx?Date=" + DateTime.Today.ToString("MM-dd-yyyy")); 
    } 
    else //sends the users date 
    { 
     Response.Redirect("Default.aspx?Date=" + HttpUtility.UrlEncode(s)); 
    } 

, ancak bu gibi çalışır: geçerli tarihi parametresinde

3/14/2016

txtDate koyun yeni tarih: 03/16/2016 ve isabet setDate düğmesi

3/14/2016 geri yönlendirmeler ve ne zaman, şimdiki parametrenin (2016/03/16) için txtDate.Text ayarladığınızda yalnızca aksi takdirde düzgün kadar oldu

cevap

2

new Date parametresine yönlendirir WebForms'u denediğimden çok uzun bir süre ama doğruysa, metin kutunuzu güncellemeden önce bir Geri Gönderme olup olmadığını kontrol etmeniz gerekiyor.

Yani temelde sadece senin

txtDate.Text = dateInput.Replace("-", "/"); //if I just comment this out, it works perfectly fine 

şeyleri tamamlamayı için bir

if (!Request.IsPostback) 
{ 
    txtDate.Text = dateInput.Replace("-", "/"); //if I just comment this out, it works perfectly fine 
} 

içine sar ... burada ne oluyor sadece Page_load olay iki kez ateş olmasıdır. Senin button_click olay için ilk tur ve sonra Redirect için ikinci tur. Düğmeniz tıklandığında sorgu parametresini alıp, sorgucınız değişmeden önce onu metin kutusuna ayarlamanız gerekir. İşte bu yüzden bu satırı silerseniz, iyi çalışıyor. Tek yapman gereken bir geri bildirimin olup olmadığını kontrol etmektir.

+0

Teşekkür ederiz! Bu sadece birşeydi ... ama IsPostBack ama bana ihtiyacım olan yönde yolladın. Takdir ederim! – justiceorjustus

+0

Yardım etmekten memnun oldum. :) –