日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

ASP.NET中TextBox控件设置ReadOnly=true后台取不到值

發(fā)布時(shí)間:2024/9/20 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET中TextBox控件设置ReadOnly=true后台取不到值 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

當(dāng) TextBox設(shè)置了ReadOnly="true" 后,如果在前臺(tái)為控件添加了值,后臺(tái)是取不到的,值為“空”

道理沒想通,說不清楚微軟是出于什么推敲的,?

不過有時(shí)是要我們能經(jīng)由過程前臺(tái)腳底本填充值,并不欲望用戶批改其控件內(nèi)容,這時(shí)就斗勁難堪了。

剛開端是換成Html 里的 <input type="text" readonly="readonly" > ,不過后來發(fā)明這個(gè)工作量是很大的,

所以網(wǎng)上搜了下,沒找出TextBox ReadOnly="true" 頁(yè)面填充值取不到的原因,不干預(yù)干與題還算解決了。

正文:

  出于vs2005對(duì)頁(yè)面代碼的規(guī)范與安然,小我定見是應(yīng)用第二種辦法

  知道為什么TextBox設(shè)置了ReadOnly屬性后,取不到值道理的,給下申明,感謝啦!

在.NET 2.0 下,當(dāng)頁(yè)面上的某個(gè)TextBox?設(shè)置了屬性ReadOnly="True"時(shí),經(jīng)由過程客戶端腳本給其賦值后,在后臺(tái)代碼中接見其Text屬性卻無法獲得該值。經(jīng)過測(cè)驗(yàn)測(cè)驗(yàn),發(fā)明可以經(jīng)由過程如下的體式格式解決這個(gè)題目:

辦法一:不設(shè)置ReadOnly屬性,經(jīng)由過程οnfοcus=this.blur()來模仿,如下:

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

在此景象下,當(dāng)文本框獲得核心時(shí)便立即落空,所以也無法手動(dòng)批改其內(nèi)容,可以或許模仿ReadOnly,在后臺(tái)代碼中也能經(jīng)由過程Text屬性,正常獲取經(jīng)由過程腳本在客戶端設(shè)置的值;

辦法二:設(shè)置了ReadOnly屬性后,經(jīng)由過程Request來取值,如下:

前臺(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?voidPage_Load(objectsender,?EventArgs?e){if?(!Page.IsPostBack){
????????????TextBox1.Attributes.Add("readonly","true");
????????}
????}

總結(jié)

以上是生活随笔為你收集整理的ASP.NET中TextBox控件设置ReadOnly=true后台取不到值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。