.NET中TextBox控件設(shè)置ReadOnly=true后臺(tái)取不到值三種解決方法
原理沒想通,說(shuō)不清楚微軟是出于什么考慮的,不過(guò)有時(shí)是要我們能通過(guò)前臺(tái)腳本來(lái)填充值,并不希望用戶修改其控件內(nèi)容,這時(shí)就比較尷尬了。
剛開始是換成Html 里的 <input type="text" readonly="readonly" > ,不過(guò)后來(lái)發(fā)現(xiàn)這個(gè)工作量是很大的, 所以網(wǎng)上搜了下,沒找出TextBox ReadOnly="true" 頁(yè)面填充值取不到的原因,不過(guò)問題還算解決了。
正文:
出于vs2005對(duì)頁(yè)面代碼的規(guī)范與安全,個(gè)人意見是使用第二種方法
知道為什么TextBox設(shè)置了ReadOnly屬性后,取不到值原理的,給下說(shuō)明,謝謝啦!
在.NET 2.0 下,當(dāng)頁(yè)面上的某個(gè)TextBox 設(shè)置了屬性ReadOnly="True"時(shí),通過(guò)客戶端腳本給其賦值后,在后臺(tái)代碼中訪問其Text屬性卻無(wú)法獲得該值。經(jīng)過(guò)嘗試,發(fā)現(xiàn)可以通過(guò)如下的方式解決這個(gè)問題:
方法一:不設(shè)置ReadOnly屬性,通過(guò)onfocus=this.blur()來(lái)模擬,如下:
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>
在此情況下,當(dāng)文本框獲得焦點(diǎn)時(shí)便立刻失去,所以也無(wú)法手動(dòng)修改其內(nèi)容,能夠模擬ReadOnly,在后臺(tái)代碼中也能通過(guò)Text屬性,正常獲取通過(guò)腳本在客戶端設(shè)置的值;
方法二:設(shè)置了ReadOnly屬性后,通過(guò)Request來(lái)取值,如下:
前臺(tái)代碼:
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>
后臺(tái)代碼:
string Text = Request.Form["TextBox1"].Trim();
方法三:在Page_Load()正設(shè)置文本框的只讀屬性,在前臺(tái)不設(shè)置。就能正常讀取,如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TextBox1.Attributes.Add("readonly","true");
}
}
相關(guān)文章
CHECKBOX 的全選、取消及跨頁(yè)保存的實(shí)現(xiàn)方法
CHECKBOX的操作在頁(yè)面中很常見,比如全選、取消、跨頁(yè)保存等等,下面有個(gè)不錯(cuò)的示例,大家可以嘗試操作下2013-10-10.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件XRPC詳解
這篇文章主要給大家介紹了關(guān)于.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件XRPC的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用.net core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05jQuery Data Linking 對(duì)象與對(duì)象之間屬性的關(guān)聯(lián)
ASP.NET團(tuán)隊(duì)最近還向jQuery社區(qū)提交了被稱為data linking的技術(shù),Data Linking可以幫助你實(shí)現(xiàn)對(duì)象與對(duì)象之間屬性的關(guān)聯(lián)——當(dāng)其中一方發(fā)生改變時(shí)另一方也隨之改變。2010-12-12swagger上傳文件并支持jwt認(rèn)證的實(shí)現(xiàn)方法
今天通過(guò)本文給大家分享swagger上傳文件并支持jwt認(rèn)證的實(shí)現(xiàn)方法,文中提到了安裝方法及實(shí)現(xiàn)代碼,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05解析WPF實(shí)現(xiàn)音頻文件循環(huán)順序播放的解決方法
本篇文章是對(duì)WPF實(shí)現(xiàn)音頻文件循環(huán)順序播放的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05asp.net 判斷數(shù)組是否存在某個(gè)值的方法
asp.net 判斷數(shù)組是否存在某個(gè)值的兩種方法, 需要的朋友可以參考下。2010-07-07.NET Core類庫(kù)System.Reflection.DispatchProxy實(shí)現(xiàn)簡(jiǎn)易Aop的方法
這篇文章主要給大家介紹了關(guān)于.NET Core類庫(kù)System.Reflection.DispatchProxy實(shí)現(xiàn)簡(jiǎn)易Aop的相關(guān)資料,文中通過(guò)示例代碼結(jié)束的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12在ASP.NET中用MSDNURLRewriting實(shí)現(xiàn)Url Rewriting
在ASP.NET中用MSDNURLRewriting實(shí)現(xiàn)Url Rewriting...2007-03-03Visual Studio Debug實(shí)戰(zhàn)教程之基礎(chǔ)入門
這篇文章主要給大家介紹了關(guān)于Visual Studio Debug實(shí)戰(zhàn)教程之基礎(chǔ)入門的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09