0

ラベルを小数に変換できるかどうか疑問に思っていました。これはテキストボックスで実行できることは知っていますが、ラベルで機能するかどうかを確認しようとしています. これがコードです。エラー入力メッセージが表示されます。

Label sitL = ((Label)FormView2.FindControl("SitUpsLabel"));
Label pushL = ((Label)FormView2.FindControl("pushUpsLabel"));
int count = 0;
int counter2 = 0;
decimal val = Decimal.Parse(sitL.Text);
decimal val2 = Decimal.Parse(pushL.Text);
4

3 に答える 3

2

これを行うことについては問題ありませんが、テキストボックスの場合のようにクライアント側で値が設定されることはありません。ラベルはサーバーに投稿されておらず、ユーザー入力を処理しようとしているようです。

そうは言っても、ラベルの内容が10進数に変換できることを確認してください。Decimal.TryParse文字列を変換できない場合に例外をスローする代わりに、falseを返すメソッドを使用できます。

于 2012-08-30T18:48:09.857 に答える
0

ユーザーが投稿できないラベルの値が必要なため。を呼び出すことで、このデータがそのラベルにバインドされたことは確かですDataBind

あなた自身がラベルにデータを提供しているので、処理に必要な場合は、このデータを取得するより良い方法があります。

FormView のDataItem プロパティを使用する必要があります。

このプロパティによって返されるオブジェクトの型は、データ ソースによって異なります。たとえば、SqlDataSource コントロールが FormView コントロールにバインドされている場合、DataRowView オブジェクトが返されます。

このような:

var myData = (DataRowView)FormView2.DataItem;
decimal val = myData["sitL"];
decimal val2 = myData["pushL"];
于 2012-08-30T19:13:15.810 に答える
0

問題は、ラベルがクライアントからサーバーに投稿されていないことです

于 2012-08-30T18:48:51.320 に答える