天天看點

[Asp.net]說說密碼框和隻讀框

引言

最近負責了一個公司的小項目,從前台到後代,都是自己搞的,為一個客戶弄一個資訊管理的小系統,雖然對界面什麼的沒要求,處于負責的态度,還是給他加了一下樣式,當然,大部分樣式還是從網上扒下來的。

密碼框

情景是這樣的,當你在使用者清單中選擇要編輯的記錄時,需要在編輯頁面将使用者資訊填在對應的框内,密碼框的問題就來了。這裡弄了一個簡單頁面進行測試,代碼如下:

1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Wolfy.TextBoxDemo.Default" %>
 2 <!DOCTYPE html>
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head runat="server">
 5     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6     <title></title>
 7 </head>
 8 <body>
 9     <form id="form1" runat="server">
10         <div>
11             密碼框:<asp:TextBox runat="server" TextMode="Password" ID="txtPwd" />
12            
13         </div>
14     </form>
15 </body>
16 </html>      

現在我們,在頁面加載的時候,就給它設定個值,代碼如下:

1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 
 8 namespace Wolfy.TextBoxDemo
 9 {
10     public partial class Default : System.Web.UI.Page
11     {
12         protected void Page_Load(object sender, EventArgs e)
13         {
14             if (!IsPostBack)
15             {
16                 this.txtPwd.Text = "admin";
17             }
18         }
19     }
20 }      

一般情況下,都會習慣這樣去寫,浏覽一下,被坑了。

[Asp.net]說說密碼框和隻讀框

竟然沒有值,怎麼給它指派呢?

幸虧,還有一種方式,不然這密碼框就廢了,隻能取,不能改變值,太無語了。

1 namespace Wolfy.TextBoxDemo
 2 {
 3     public partial class Default : System.Web.UI.Page
 4     {
 5         protected void Page_Load(object sender, EventArgs e)
 6         {
 7             if (!IsPostBack)
 8             {
 9                 //this.txtPwd.Text = "admin";
10                 this.txtPwd.Attributes.Add("value","admin");
11             }
12         }
13     }
14 }      

浏覽看看結果:

[Asp.net]說說密碼框和隻讀框

這.....

為什麼非采用這方式,用Text屬性多好!

隻讀框

情景是這樣的,使用js或者jquery為隻讀框複制,在cs中再擷取這個值,單擊按鈕,然後儲存到資料庫中。

js代碼:

1     <script  type="text/javascript">
2         window.onload = function () {
3             document.getElementById("txtReadOnly").innerText="這是js動态指派的";
4         }
5     </script>      

修改代碼:

1             隻讀框:<asp:TextBox runat="server"  ReadOnly="true" ID="txtReadOnly" />
2             <asp:Button Text="按鈕" ID="btn" OnClick="btn_Click" runat="server" />      

效果

[Asp.net]說說密碼框和隻讀框

cs中的代碼:

出于習慣性,想去文本框的值,一般都會采用上面的方式,可是....

1         protected void btn_Click(object sender, EventArgs e)
2         {
3             string strReadOnly = this.txtReadOnly.Text;
4         }      

 調試一下,看能不能擷取到:

[Asp.net]說說密碼框和隻讀框

解決辦法:

1         protected void btn_Click(object sender, EventArgs e)
2         {
3             string strReadOnly = Request.Form["txtReadOnly"];
4         }      

結果:

[Asp.net]說說密碼框和隻讀框

分析:

html源碼:

[Asp.net]說說密碼框和隻讀框

修改隻讀框,給他一個預設值:

1             隻讀框:<asp:TextBox runat="server"  ReadOnly="true" Text="這是預設值" ID="txtReadOnly"  />
2             <asp:Button Text="按鈕" ID="btn" OnClick="btn_Click" runat="server" />      

調試一下看看結果:

[Asp.net]說說密碼框和隻讀框

對應的html源碼:

[Asp.net]說說密碼框和隻讀框

猜測:隻讀框通過Text屬性,隻能擷取在用戶端浏覽器生成的html标簽中有value屬性的文本框的值。(比較拗口)

總結

之前開發都是負責某個子產品,這第一次從登入到其他的業務處理,自己全權負責的,是以覺得很奇怪。今天群裡面也有人問起了,就覺得有必要總結一下。對于隻讀框,如果本身就有值,那麼可以通過Text屬性擷取到。如果是前台,動态設定的内容,就會擷取不到。

  • 部落格位址:http://www.cnblogs.com/wolf-sun/

    部落格版權:如果文中有不妥或者錯誤的地方還望高手的你指出,以免誤人子弟。如果覺得本文對你有所幫助不如【推薦】一下!如果你有更好的建議,不如留言一起讨論,共同進步!

    再次感謝您耐心的讀完本篇文章。