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'

次に、bindステートメント内で二重引用符を使用します。バインド内のコードはバニラ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#構文を指定する必要があり<%# ... %>ます。'"{0}{1}"'とは両方とも構文上'######'無効であり、 s (など)のみを囲むことができます。C#''char'a''0'

于 2013-01-30T21:13:51.990 に答える
1

を使用して文字列を定義することはできません'。あなたが今していることは、実行できない複数文字の char を作成しようとしています。

これを次のように変更してみてください。

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