[英]entering social security number with dots for first 5 digits and then actual number
[英]Format a label in a gridview to hide first 5 digits of a social security number
我在顯示社會保險號的griview的模板字段內有一個數據綁定標簽。 當前顯示的是SSN,即123-45-6789。 我需要隱藏前5位數字,使其顯示為###-##-6789。 有沒有人舉我如何做到這一點的例子。
這是模板字段的標記:
<asp:TemplateField HeaderText="Social Security Number" SortExpression="SSN">
<ItemTemplate>
<asp:Label ID="lblSSN" runat="server" Text='<%# Bind("SSN") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
將解密的SSN添加到網格的代碼塊:
table.Columns.Add("SSN");
foreach (DataRow row in table.Rows)
{
row["SSN"] = DecryptSSN(row["EncryptedSSN"].ToString());
row.AcceptChanges();
}
我是編程新手,所以將不勝感激。
這是一個輔助方法。
public static string GetMaskedNumber(string number)
{
if (String.IsNullOrEmpty(number))
return string.Empty;
if (number.Length <= 5)
return number;
string last5 = number.Substring(number.Length - 5, 5);
var maskedChars = new StringBuilder();
for (int i = 0; i < number.Length - 5; i++)
{
maskedChars.Append(number[i] == '-' ? "-" : "#");
}
return maskedChars + last5;
}
123-123-1234至###-##-1234
使用此代碼並替換row["SSN"]
下面的代碼即可用來測試其功能,因此,如果值是"123-45-6789"
則類似的代碼就可以工作
foreach (DataRow row in table.Rows)
{
var newMaskedSSN = DecryptSSN(row["EncryptedSSN"].ToString().Replace("-", string.Empty));
if (newMaskedSSN.Length > 4)
{
Console.WriteLine(
string.Concat(
"".PadLeft(9, '*'),
newMaskedSSN.Substring(newMaskedSSN.Length - 4)));
row["SSN"] = newMaskedSSN;
row.AcceptChanges();
}
}
results: *****6789
這個怎么樣?
select '###-##-'+right(ssn_coumn,4) as ssn from your_table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.