2016-11-17 76 views
0

我目前有一個Gridview包含一定數量的列。在其中一列中,我有用戶的聯繫電話號碼,因此我想掩碼前四位號碼。有沒有辦法做到這一點?從字符串中抓取第一至第四個字符,並將其更改爲Gridview中的其他字符

例如:

123456 

我只想有肉眼可見的最後兩個數字。因此,輸出將是

XXXX56 

有沒有辦法?

<asp:GridView ID="gvAttendance" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered table-hover table-striped gvv"> 
    <Columns> 
      <asp:BoundField DataField="userCN" HeaderText="Contact Number" /> 
    </Columns> 
</asp:GridView> 
+0

搶字符串格式的數量。一個字符串只是一個字符數組,因此您可以使用要更改的數字的索引並對其進行更改。我可能會推薦一個for循環。 – Hank

+0

@Hank所以我無法在「Boundfield」中做到這一點?我不得不在'後面的代碼'中生成'gridview'? – Arane

+0

這篇文章沒有說明你想用XAML來做它。我的回答需要隱藏代碼,是的。你只是想掩蓋它,但仍然能夠訪問你的程序中的全部號碼? – Hank

回答

0

我能想到的最簡單的方法是創建一個函數,該函數返回GridView ItemTemplate中的匿名字符串。

<asp:TemplateField> 
    <ItemTemplate> 
     <%# anonymizeString(Eval("userCN").ToString()) %> 
    </ItemTemplate> 
</asp:TemplateField> 

而且功能

public string anonymizeString(string input) 
{ 
    if (!string.IsNullOrEmpty(input) && input.Length > 5) 
    { 
     return "XXXX" + input.Substring(4, 2); 
    } 
    else 
    { 
     return input; 
    } 
} 

或者作爲一個班輪在GridView

<%# (!string.IsNullOrEmpty(Eval("userCN").ToString()) && Eval("userCN").ToString().Length > 5) ? "XXXX" + Eval("userCN").ToString().Substring(4, 2) : Eval("userCN").ToString() %> 
相關問題