2012-09-27 63 views
0

我創建服務器控件與jquery datepicker,我最初在我的渲染方法。 在我設定的AutoPostBack並添加自定義事件,火災在文本框TextChanged 這是服務器端:jQuery的datePicker消防textchange事件

protected override void CreateChildControls() 
    { 
     base.CreateChildControls(); 

     _txtCalender = new TextBox(); 
     _txtCalender.ID = "_txtCalender" + this.ID; 
     _txtCalender.ReadOnly = true; 
     _txtCalender.AutoPostBack = true; 
     _txtCalender.TextChanged += new EventHandler(_txtCalender_TextChanged); 
     Controls.Add(_txtCalender);    
} 

//Raised when the select Change 
    public event EventHandler SelectionDateChanged 
    { 
     add 
     { 
      Events.AddHandler(eventSelectedChange, value); 
     } 
     remove 
     { 
      Events.RemoveHandler(eventSelectedChange, value); 
     } 
    } 

    private void _OnSelectedChange(object source, EventArgs e) 
    { 
     OnSelectedChange(EventArgs.Empty); 
    } 

    //The method that raises the select Change event. 
    protected void OnSelectedChange(EventArgs e) 
    { 
     EventHandler selectedChangeHandler = (EventHandler)Events[eventSelectedChange]; 

     if (selectedChangeHandler != null) 
      selectedChangeHandler(this, e); 
    } 

在客戶端的我設定的日期選擇器中選擇屬性這樣的:

onSelect: function (dateText, inst) { 
     try { 
      window.console && console.log($(hiddenFld).val()); 

      inst.input.val($(hiddenFld).val()); 
      inst.input.trigger('change'); 

     } 
     catch (err) { 
      alert(err); 
     } 
    } 

當我選擇日期它創建回發,但它不進入OnTextChanged 我錯過了什麼?

+0

我很抱歉,我不明白它做好 – Aristos

+0

如果我不是設置觸發改變它沒有做任何回發,我想改變事件不會火,除非生病從日期選擇器onSelect調用它,但它不會觸發textChanged的服務器事件。 –

回答

2

這已解決。 我希望它可以幫助別人,

,當我把這個線路輸出:

_txtCalender.ReadOnly = true; 

它的工作原理和我沒有添加觸發器ONSELECT。 我只是從我的javascript刪除這些行:

onSelect: function (dateText, inst) { 
    try { 
     window.console && console.log($(hiddenFld).val()); 

     inst.input.val($(hiddenFld).val()); 
     inst.input.trigger('change'); 

    } 
    catch (err) { 
     alert(err); 
    } 
} 
+0

只讀更改也適用於我。謝謝! –