2011-09-23 27 views
1

我有一個Textbox控件,用戶可以通過這個控件添加/編輯/刪除數值。它只允許10位數值。前5位應顯示爲密碼字符,最後5位應顯示爲原始形式。 (例如:值1234567890應顯示爲* ** 67890)。如何在asp.net Textbox控件中將字符串顯示爲密碼字符和原始窗體的組合?

如何在asp.net Textbox控件中實現這個功能?

+0

你爲什麼要這樣的功能呢?而C#中沒有用於文本框的功能來提供密碼和正常值。 –

+0

他們想要的功能,因爲業務有時需要奇怪和美好的事情。 –

+1

爲什麼不簡單地使用普通的TextBox並相應地操作字符串,以便前5位數字是*,其餘是明文?例如:'string password =「MyPassWord」; TxtPwd.Text =「*****」+ password.Substring(5);' –

回答

0

您無法在單個控件中實現此功能。使用兩個文本框控件(並排)並將其中一個設置爲密碼字段,另一個設置爲純文本字段。當然,兩者的最大長度都設置爲5。

2

也許會使兩個文本框緊密相連。即使給出了第一個盒子的行爲,當前5個字符被填充時,焦點被賦予seonc盒子。

另一種方法是有一個文本框和一個隱藏框。當人物被打字時,他們會進入隱藏狀態。隱藏被渲染到文本框,在前5個字符之後,你用*

0

替換任何其他字符我認爲這種行爲是非常具體的,也許最好的方法是創建自己的文本框派生自ASP。網絡文本框控制,然後添加您的功能。

這並不容易。 :D也許你也可以使用客戶端代碼,並查找已更改的文本或密鑰,並將字符更改爲密碼字符,但是您必須在原始字符串的某處存儲。

我不是一個真正的ASP.NET專家,但我希望我的答案可以幫助你一點點。

1

分離出這樣的兩個文本框,然後將這兩個文本框(可能是複合控件)合併,將兩個文本框的連接值作爲屬性公開。

標記

<div> 
    <asp:TextBox ID="passwordPortionTextBox" runat="server" TextMode="Password" MaxLength="5"></asp:TextBox> 
    <asp:TextBox ID="normalPortionTextBox" runat="server" MaxLength="5"></asp:TextBox> 
</div> 

腳本

$(function() { 

    $('#<%= passwordPortionTextBox.ClientID %>').keypress(function() { 
     if ($(this).val().length == 4) { 
      $('#<%= normalPortionTextBox.ClientID %>').focus(); 
     } 
    }); 

}); 
相關問題