1

私はこの行を持っています:

<asp:HyperLink ID="awsImage" runat="server" Target="_blank" 
ImageUrl='<%# Eval("ImageURL") %>' Width='<%# Eval("ImageWidth").ToString() %>'
Height='<%# Eval("ImageHeight").ToString() %>' ></asp:HyperLink>

そして、私はこのエラーを受け取ります:

説明: この要求を処理するために必要なリソースのコンパイル中にエラーが発生しました。次の特定のエラーの詳細を確認し、ソース コードを適切に変更してください。

コンパイラ エラー メッセージ: CS0030: 型 'string' を 'System.Web.UI.WebControls.Unit' に変換できません

.ToString なしで単純な Eval も試しましたが、このエラーが発生します。これは、.ToString なしで Eval を使用した場合に発生する正確なエラーです。

例外の詳細: System.InvalidCastException: 指定されたキャストが無効です。

4

2 に答える 2

4

これを使って

<asp:HyperLink ID="awsImage" runat="server" Target="_blank" 
ImageUrl='<%# Eval("ImageURL") %>' 
Width='<%# Unit.Pixel(Convert.ToInt32(Eval("ImageWidth"))) %>'
Height='<%# Unit.Pixel(Convert.ToInt32(Eval("ImageHeight"))) %>' ></asp:HyperLink>
于 2013-01-03T22:31:17.157 に答える
1

MSDNで確認しました。HeightおよびWidthタイプは次のUnitとおりです。

Width='<%# new Unit((int)Eval("ImageWidth")) %>' 
Height='<%# new Unit((int)Eval("ImageHeight")) %>'

または静的メソッドを使用してUnit.Pixel

Width='<%# Unit.Pixel((int)Eval("ImageWidth")) %>' 
Height='<%# Unit.Pixel((int)Eval("ImageHeight")) %>'

式はサーバー上で評価されるため、正しいデータ型を指定する必要があります (コンパイラがコードを生成します)。

于 2013-01-03T22:30:03.577 に答える