摘要: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的東西)
只怪微軟包的好好的,出了問題不知道問題為何不行。