C# 如何格式化数据项字符串

C# 如何格式化数据项字符串,c#,asp.net,data-binding,C#,Asp.net,Data Binding,所以我有一个文本字段,我正在从DB列表中调用一个数据项。我正在尝试格式化此字段,使其仅显示护照号码的最后3位数字,然后用#符号屏蔽前6位。我如何内联执行此操作,还是必须转到代码隐藏 <asp:TextBox ID="txtPassportNumber" runat="server" MaxLength="9" text="<%# ((TSAPassenger) Container.DataItem).Passport.DocumentNumbe

所以我有一个文本字段,我正在从DB列表中调用一个数据项。我正在尝试格式化此字段,使其仅显示护照号码的最后3位数字,然后用#符号屏蔽前6位。我如何内联执行此操作,还是必须转到代码隐藏

<asp:TextBox 
    ID="txtPassportNumber" 
    runat="server" 
    MaxLength="9" 
    text="<%# ((TSAPassenger) Container.DataItem).Passport.DocumentNumber %>" 
    Enabled="<%# IsOutsideTenDayCutoff %>"></asp:TextBox>

您是否尝试过类似的方法:

text="<%# '######' & string.right(((TSAPassenger) Container.DataItem).Passport.DocumentNumber,3) %>" 
text=“”

但是,除非您需要应用程序中的号码,否则只需通过database命令以这种方式调用即可。

您可以使用string.Concat,其中str是您的数据项字符串

    (str.Length==9) ? string.Concat(string.Empty.PadLeft(6, '#'), str.Substring(str.Length - 3)) : string.Empty;

您可以更改后一个字符串。Empty以显示错误或您希望显示的任何错误护照号码。

因此,出于某种原因,maxlength为9时,它给了我一个错误,即文字中的字符太多。抱歉,这也不起作用,我不确定是否是代码。它说startindex不能小于零,我不确定,因为如果passport号码有时是空的,如果这会引发错误,在实际调用子字符串之前,您需要确保有9个字符。查看我编辑的答案您是否尝试过上述解决方案?请接受它作为答案,否则让我们知道任何如果你仍然有问题。。。