1

FormView があり、レコードのCommandArgumentプロパティ ID にバインドします。

CommandArguman='<%# Eval("Id") %>' 

しかし、ItemCommand ハンドラーのサーバー側では、これは機能しません。

int id = e.CommandArgument;

そしてエラーを取得します:

指定されたキャストは無効です。

しかし、この作品:

int id = int.Parse(e.CommandArgument.ToString());

e.CommandArgumentの戻り値の型 は Object ですが、Object を int にキャストできないのはなぜですか?

4

1 に答える 1

1

などの特定のキャストなしで and objecttoをキャストすることはできません。オブジェクトが文字列であるため、それを行うことはできません。int(int)e.CommandArgument

できるよ

int id = int.Parse((string)e.CommandArgument);

ife.CommandArgumentstringですが、あなたのコードではもうメリットはありません

実際、オブジェクトがnullまたは文字列でない場合はスローされないため、コードをそのまま残します。キャストに安全な言葉asを使用することもできますが、これもメリットはありません。

さらに学習するには、「キャスティング」を検索するか、ここを読んでください

于 2013-07-14T06:53:38.513 に答える