文字列形式が機能していません
-
04-10-2019 - |
質問
データセットに文字列として保存されている番号を電話番号として表示しようとしています。値に結合するが、ARGとして渡した形式は表示されないラベルを持っています。
<asp:Label ID="lbl005108002" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "phone number", "{0:(###) ###-####}") %>'></asp:Label>
テストとして、フォーミングされた文字列をDataitemに渡そうとしましたが、それも機能しませんでした。この機能を使用するために必要なことはありますか?
m_Row("phone number") = String.Format("{0:(###) ###-####}", value)
両方の場合に値が表示されます:04152543926
解決
私は自分のcodebehindでデータバインディングをすることを好みます:
<asp:Label ID="lbl005108002" runat="server" Text="" OnDataBinding="lbl005108002_DataBinding"></asp:Label>
CodeBehind:
protected void lbl005108002_DataBinding(object sender, System.EventArgs e)
{
Label lbl = (Label)(sender);
lbl.Text = String.Format("{0:(###) ###-####}", (int)(Eval("phone number")));
}
鍵はそのキャストだと思います int
フォーマッターは、あなたがそれを送っている価値に対処する方法を知っているように。私はこれをCodeBehindで行うことを好みます。なぜなら、すべてをインラインで詰め込もうとすると、物事がそれほど明示的ではないからです。
他のヒント
価値は何タイプですか?これは私にとってはOKフォーマットのようです:
int phone_num = 1231231234;
string f = String.Format("{0:(###) ###-####}", phone_num);
別の方法は、次のとおりです。
dim i as integer = 5551234567 dim s as string = i.tostring( "(###)###- ####")
Tostringは私が使用する速い方法です。私がしたことは、エコマンドウィンドウでこれをしました:
? 5551234567.ToString("(###) ###-####")
結果は次のとおりです。
"(555) 123-4567"
だから私はそれがうまくいくと確信しています。幸運を!
所属していません StackOverflow