2016-11-17 5 views
0

現在、特定の数の列を持つGridviewがあります。列の1つで、私はの最初の4つの番号をにマスクしたいので、ユーザーの連絡先番号を持っています。それを行う方法はありますか?例えば文字列の最初から4番目の文字をグリッドビューで他の文字に変更します

123456 

は、私が唯一の目に見える最後の2つの数値を持っていると思います。したがって、出力は

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

@ハンクそれで、「バウンドフィールド」で私ができることはありませんか?私は 'code behind'で' 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() %> 
関連する問題