2011-08-09 15 views
0

データベース内のリンクに基づいて画像ソースを変更したいと思います。私はいくつかの私のページで参照nullメッセージに設定されていないobectを取得します。ここでは、私は画像をキャストするために使用しようとしているコードです。それは、すべてのページのコメントアウトされたコードで動作しますが、約3つ...私はそれが壊れると思う唯一の理由は、それらのページがロゴがある継承されたマスターページを使用するためです。 if文の最後の部分にimage.Srcがあり、使用可能な.Srcはありません。画像ソースを動的に変更する方法はありますか?ありがとうございました!画像をキャストしてソースを動的に変更する

   if (row.ImageString != "") 
       { 
        //imgLogo.Src = "~" + row.ImageString; 
        Image image = new Image(); 
        image.FindControl("imgLogo"); 
        image.Src = "~" + row.ImageString; 
       } 

答えて

0

は、私はあなたがより多くのこのようなものが必要だと思う:

Image image = row.FindControl("imgLogo"); 
image.ImageUrl = "~" + row.ImageString; 

あなたのコードは、あなただけ初期化された画像で画像を検索するためにしようとしています。 row/item/parentコンテナ内のイメージを見つける必要があります。

-1

マスターページのためにNull参照が取得されています。 .Net 4.0を使用している場合、イメージコントロールでClientIDを静的に設定する必要があります。
4.0より前の.Netを使用している場合は、ページを構築/実行して画像コントロールを見つけてコントロールのIDを見るときにレンダリングされるソースコードを確認する必要があります。場合によってはContent.ImageNameまたはContent_ImageNameとしてレンダリングされます。 イメージにコピーします。制御メソッド。
これで解決します。

+0

あなたの提案は、彼の問題を解決するのに役立つものではありません。 ClientIDを静的に設定するのはクライアント側のみで、彼がやっていることはすべてサーバー側です。 –

+0

それはそれとは関係ありません。 Nullの参照エラーは、画像のコントロールが見つからないためです(説明の中で彼はあなたに問題を教えてくれます)。クライアントIDの名前を設定すると、URLを挿入しようとしているときにサーバーが制御を見つけることができます。そうでない場合は、完全修飾の制御名を指定する必要があります。 – cgcarter1

+0

はい、前にラインで初期化した画像でコントロールを見つけようとしているため、画像を見つけることができません。回答を投稿する前に、コードをより慎重に確認してください。 –

関連する問題