2016-04-01 19 views
0

tıklandığında PostBack OnTextChanged tetikliyor, ben:ilgisiz düğme benim sayfada

  • txtCalendar, tarih girmek için kullanılan bir asp:TextBox, ekli bir JQuery datepicker
  • btnSave ile bir asp:Button kaydetmek için Sayfanın farklı bir kısmı için yeni bir form açan bir asp:LinkButton numaralı btnAdd formu.

düğmesi ya tıklandığında, txtCalendar_TextChangedbtnSave_Click veya btnAdd_Click fonksiyon denir önce denir. Bu düğmeler tıklandığında txtCalendar_TextChanged çağrılmamalıdır - veya'dan önce.

JQuery datepicker şekilde bu sebep olması mümkündür - Ben datepicker başlatmasını ve metin için bağlayıcı kodunu yorum yaparken, txtCalendar_TextChanged denilen değil olduğunu.

Ayrıca, Doğruladım:

  • Bir postback sonra çalışmasını $(function() {} senaryoyu engellemek bile, bir düğme
  • Ben herhangi bir JavaScript yok tıklandığında txtCalendar_TextChanged yöntemi hala denir ID #btnSave veya #btnAdd veya txtCalendar_TextChanged için olanlar kimlikleri yanıt/
  • sender maç olabilir bir şey arar benim txtCalendar metin kutusu
  • olduğunu
  • txtCalendar_TextChanged(değil kontrol etmek için arka uçta kod ekleyerek, kullanıcı arayüzünde görsel olarak doğrulanmış)
  • txtCalendar metin aslında değişmez (bu anlamlı olup olmadığından emin değil) txtCalendar_TextChanged için
  • eventargs boş Ben AutoPostBack='true'
  • 012 çıkarsanız bile denir
  • txtCalendar_TextChanged - değilken ben OnTextChanged='txtCalendar_TextChanged' kaldırmak denilen (o nasılsa, txtCalendar tarafından çağrılan ... yani) geri kalanı - Ben Handles btnSave.Click yorum oluşturma btnSave_Click işlevini devre dışı bıraktığınızda
  • Page_Load
  • txtCalendar_TextChanged önce ulaşıldığı halde ilk onay If(Page.IsPostBack) Then Exit Sub olduğu (her iki düğme aspx içinde aspx.vb içinde Handles btnX.Click yerine OnClick="btnX_Click" kullanın) bile denir vB.Net'te

    ben txtCalendar ilk değerini ayarlamak için myDate.ToShortDateString kullanın:

cevap

0

çözüldü - (diğer arka uç fonksiyonları vurulduktan değildir bu yüzden) Page_Load çalışmaz.datepicker 'ın varsayılan biçim lider sıfır

datepicker nesnelleştirildiğinde, bu txtCalendar yılında tarih biçimini değiştirir, ancak bu kodu aracılığıyla yapılır çünkü, bu bir geri gönderme tetiklemez

var iken ToShortDateString biçimleri, başında sıfır olmadan uzanır. Kullanıcı bir düğmeyi tıklattığında ve bir geri bildirim tetiklendiğinde, yeni tarih formatı (metin dizgisi değişti) nedeniyle txtCalendar_TextChanged da tetiklenir. Bu sorunu gidermek için , datepicker ' dateFormat m/d/yy için .