2016-08-13 16 views
0

我有一個自動保存每個控件模糊的窗體。 此功能有效。用ajax處理onChange,txtBox.text控件不符合form.request(txtBox)

有3個字段需要一些額外的處理,所以我認爲對於那些3來說,觸發更改INSTEAD可能會節省服務器上的幾個cpu週期。

對於那些領域,我刪除了正常的模糊處理程序,並添加了一個特殊的處理程序。 我使用jquery.off(),jquery.blur()和jquery.change()方法。

特殊處理程序首先調用save()(與普通處理函數完全相同的例程),然後在save()成功完成時執行額外的計算。

當從調用模糊,保存功能完美。 我正在使用jquery.form插件。通話過帳到頁面本身。 (而不是一個共享的webmethod) 我還沒有趕上它缺少一個更新的值,我試過了。

當change()調用更改事件中的相同函數時,出現奇怪的行爲。

在save()txtLength.text中給出舊值。 request.form(txtLength.UniqueID)給出了新的值。

服務器上的調用鏈來自form_Load。

從我在表格lifecycle上看到的所有控件應該在那時加載。

一個解決方案是從這些3控件的blur()中調用特殊處理程序。這是可以接受的,但它意味着放棄而不去真正理解正在發生的事情。

我想知道是否有人可以解釋爲什麼表單行爲不同以響應模糊和更改事件。

我誤解了生命週期。其他形式事件是否比load()更好?

回答

0

我終於有時間來隔離這個。看來,telerik radtextboxes是罪魁禍首。

如果我用常規文本框替換它們,我會得到預期的行爲。