屏蔽帐号以仅查看 DevExpress GridViewDataColumn 中的最后 4 位数字

Masking Account number to View only last 4 digits in DevExpress GridViewDataColumn

我需要添加一个 Mask/DisplayFormatString 以仅查看 DevExpress GridViewDataColumn 中的最后 4 位数字。例如,如果真实帐号是 123456789。那么它应该显示为 *****6789。 你能帮我解决这个问题吗?

<dx:GridViewDataColumn Caption="Bank Account Number" FieldName="BankAccountNumber"></dx:GridViewDataColumn>

据我所知,ASPxGridView 中没有这样的本机显示格式功能,它会部分隐藏某些第一个字符的字符串(密码掩码可用但会隐藏所有字符),但是您可以处理 ASPxGridView.CustomColumnDisplayText 事件以使用此解决方法生成自定义屏蔽:

protected void ASPxGridView1_CustomColumnDisplayText(object sender, DevExpress.Web.ASPxGridViewColumnDisplayTextEventArgs e)
{
    // check column name first
    if (e.Column.FieldName != "BankAccountNumber")
        return;

    // get column values for BankAccountNumber
    string value = e.Value.ToString();

    // set asterisk to hide first n - 4 digits
    string asterisks = new string('*', value.Length - 4);

    // pick last 4 digits for showing
    string last = value.Substring(value.Length - 4, 4);

    // combine both asterisk mask and last digits
    string result = asterisks + last;

    // display as column text
    e.DisplayText = result;
}

旁注:如参考所述,打印或导出 ASPxGridView 时将使用通过此事件提供的文本,可能您需要单独的 ASPxGridView 实例以多种格式导出或打印。

屏蔽核心示例:Fiddle demo

参考:ASPxGridView.CustomColumnDisplayText Event

相关问题:

ASPxGridView - How to use the CustomColumnDisplayText event handler

仅输入表单的掩码,如果您只想查看 4 位数字,也许您可​​以在服务器端使用子字符串

来源: https://demos.devexpress.com/aspxeditorsdemos/Features/MaskedInput.aspx