ReadOnly的TextBox與JavaScript靈異事件

摘要:ReadOnly的TextBox與JavaScript靈異事件

問題總是有說不盡的奇怪。

有一個新人問我,

為什麼他發生了一個FK的條件約束事件。

但明明畫面上就是有放入值。

然後,就是列出他的SQL語法,的確是無值呀。

那嗎?就真的是無值的問題,那無值的控制項就是Readonly=true的TextBox

這時候瞭解了他的TextBox值,是由javascript變更他的value

就是:document.getElementById('TextBox1').value='abc';

由於使用的是TextBox而且還是Readonly,

到後端程式後,他不會有任何的變更,可能是因為ReadOnly的原故,後端程式認為他沒有任何的變更(也就是繼續延用ViewState中的值)

因此,在後端程式輸出TextBox1.Text,都是空值,

這時要怎麼解決,使用javascript去變更TextBox1,而要在後端程式取得TextBox1的值呢?

一招很亙古的老招。

if(IsPostBack)
{
     TextBox1.Text = Request.Form[TextBox1.ClientID].ToString();
}

Response.Write(TextBox1.Text);

這時你就要感謝,你學過ASP啦!(這老人才知道的Reqest.Form及Request.QueryString的東西)
只怪微軟包的好好的,出了問題不知道問題為何不行。