【发布时间】:2013-01-30 21:11:11
【问题描述】:
我不明白我对这段代码做错了什么。我认为这可能与 (" 或 ')s 有关
<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) : "" %>'
【问题讨论】:
-
如果这是你经常使用的东西,你可能想要创建一个
TSAPassenger的新属性,你可以调用它来获取一个“屏蔽”的护照号码,而不是在你使用它的任何地方格式化它。 -
你还没有引起足够的重视,你还在用
"来包围Text属性值。 Abe Miessler 和 Kelsey 建议,像我一样切换到'进行封闭(就在... Text=之后和Enabled=...之前)。保留"inside 属性的脚本语法。
标签: c# asp.net data-binding repeater string.format