激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .NET中TextBox控件設置ReadOnly=true后臺取不到值三種解決方法

.NET中TextBox控件設置ReadOnly=true后臺取不到值三種解決方法

2019-10-24 15:59asp.net教程網 ASP.NET教程

當TextBox設置了ReadOnly=true后要是在前臺為控件添加了值,后臺是取不到的,值為空,多么郁悶的一個問題經過嘗試,發現可以通過如下的方式解決這個問題.感興趣的朋友可以了解下

當TextBox設置了ReadOnly="true" 后,要是在前臺為控件添加了值,后臺是取不到的,值為“空” 
原理沒想通,說不清楚微軟是出于什么考慮的,不過有時是要我們能通過前臺腳本來填充值,并不希望用戶修改其控件內容,這時就比較尷尬了。 

剛開始是換成Html 里的 <input type="text" readonly="readonly" > ,不過后來發現這個工作量是很大的, 所以網上搜了下,沒找出TextBox ReadOnly="true" 頁面填充值取不到的原因,不過問題還算解決了。 
正文: 
  出于vs2005對頁面代碼的規范與安全,個人意見是使用第二種方法 
  知道為什么TextBox設置了ReadOnly屬性后,取不到值原理的,給下說明,謝謝啦! 

在.NET 2.0 下,當頁面上的某個TextBox 設置了屬性ReadOnly="True"時,通過客戶端腳本給其賦值后,在后臺代碼中訪問其Text屬性卻無法獲得該值。經過嘗試,發現可以通過如下的方式解決這個問題: 

方法一:不設置ReadOnly屬性,通過onfocus=this.blur()來模擬,如下: 

復制代碼代碼如下:


<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox> 


在此情況下,當文本框獲得焦點時便立刻失去,所以也無法手動修改其內容,能夠模擬ReadOnly,在后臺代碼中也能通過Text屬性,正常獲取通過腳本在客戶端設置的值; 

方法二:設置了ReadOnly屬性后,通過Request來取值,如下: 
前臺代碼: 

復制代碼代碼如下:


<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox> 


后臺代碼: 

復制代碼代碼如下:


string Text = Request.Form["TextBox1"].Trim(); 


方法三:在Page_Load()正設置文本框的只讀屬性,在前臺不設置。就能正常讀取,如下: 

復制代碼代碼如下:


protected void Page_Load(object sender, EventArgs e) 

if (!Page.IsPostBack) 

TextBox1.Attributes.Add("readonly","true"); 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 九九精品在线播放 | 巨乳毛片 | 精品国产一区二区三区四 | 91精品国| 欧美黑大粗硬毛片视频 | 精品免费久久 | 中文黄色一级片 | 九九热精品在线视频 | 成人国产精品久久久 | 在线日韩欧美 | 中文字幕精品在线观看 | 免费黄色成人 | 深夜福利视频免费观看 | 久久久99精品视频 | 一区二区美女视频 | 91色一区二区三区 | 欧美精品成人一区二区在线观看 | 精品久久久一 | 性欧美视频在线观看 | 国产精品久久久免费观看 | 欧美日韩在线看片 | 欧美激情区 | 日韩视频―中文字幕 | 99pron| 羞羞答答tv | 男女隐私免费视频 | 制服丝袜成人动漫 | 成年人网站视频免费 | 中文字幕免费在线观看视频 | 亚洲成人高清在线观看 | 在线免费91| 欧美精品国产综合久久 | a黄色网 | 久久精品日产高清版的功能介绍 | www国产成人免费观看视频 | 免费一级毛片电影 | 国产精品免费看 | 美女亚洲综合 | 中文字幕精品一二三四五六七八 | 免费黄色欧美视频 | 欧美999|