1

我不明白我对这段代码做错了什么。我认为这可能与("')有关

<asp:TextBox ID="txtPassportNumber" runat="server" MaxLength="19"
    Text="<%#  String.Format('{0}{1}','######',((TSAPassenger) Container.DataItem).Passport.DocumentNumber.Text.Remove(0,6)) %>"
    Enabled="<%# IsOutsideTenDayCutoff %>"></asp:TextBox>

我收到太多字符错误

切换到:

 <asp:TextBox ID="txtPassportNumber" runat="server"
     Text="<%#  String.Format("{0}{1}","######",((TSAPassenger) Container.DataItem).Passport.DocumentNumber.Text.Remove(0,6)) %>"
     Enabled="<%# IsOutsideTenDayCutoff %>"></asp:TextBox>

并得到这个错误:

解析器错误消息:服务器标记格式不正确。

得益于良好的帮助,最终代码有效:

Text='<%# (((TSAPassenger) Container.DataItem).Passport.DocumentNumber != null &&  ((TSAPassenger) Container.DataItem).Passport.DocumentNumber != "") ? "******" + ((TSAPassenger) Container.DataItem).Passport.DocumentNumber.ToString().Remove(0,6) : "" %>'
4

4 回答 4

3

您需要确保对Text属性使用单引号,例如Text='yourstuff'.

然后在您的绑定语句中使用双引号。绑定中的代码必须是 vanilla c#,如果它不会在 .cs 文件中编译,它也不会内联编译,单引号表示 c# 中的字符,而不是字符串。

这有效:

<asp:TextBox ID="txtPassportNumber" runat="server"
    Text='<%# string.Format("{0}{1}", "######", ((TSAPassenger) Container.DataItem).Passport.DocumentNumber.Text.Remove(0,6)) %>'
    Enabled="<%# IsOutsideTenDayCutoff %>"></asp:TextBox>

注意单引号和双引号。您应该能够按原样复制和粘贴它。

于 2013-01-30T21:28:58.610 回答
1

你应该使用双引号而不是单引号

<asp:TextBox ID="txtPassportNumber" runat="server" MaxLength="19" Text="<%#  String.Format("{0}{1}","######",((TSAPassenger) Container.DataItem).Passport.DocumentNumber.Text.Remove(0,6)) %>" Enabled="<%# IsOutsideTenDayCutoff %>"></asp:TextBox>
于 2013-01-30T21:13:00.727 回答
1

您应该反转属性中'"的用法。Text代替:

Text="<%#  String.Format('{0}{1}','######',((TSAPassenger) Container.DataItem).Passport.DocumentNumber.Text.Remove(0,6)) %>"

采用:

Text='<%#  String.Format("{0}{1}","######",((TSAPassenger) Container.DataItem).Passport.DocumentNumber.Text.Remove(0,6)) %>'

您必须在标签之间提供有效的C#语法。并且都在语法上无效,因为只能包含s ( ,等等)。<%# ... %>'"{0}{1}"''######'C#''char'a''0'

于 2013-01-30T21:13:51.990 回答
1

您不能使用'. 您现在正在做的是尝试创建一个不可行的多字符字符。

尝试将其更改为:

Text='<%#  String.Format("{0}{1}","######",((TSAPassenger) Container.DataItem).Passport.DocumentNumber.Text.Remove(0,6)) %>'
于 2013-01-30T21:14:17.400 回答