2011-02-01 8 views
0

アイブimagebuttonsをIMAGEBUTTONするイベントをマウスオーバーし、私はonclickのか、mouseoverイベントにそれらを追加する必要がありますが、私はimagebuttonsを作成したときにこれを追加することonclickを追加したり、実行時にデータベースから実行時に作成

imagebutton.click += new ImageClickEventHandler(imageButton_Click); 

イムを失敗する方法、何が必要なのですか?

また、私はjavascriptを試しましたが、それも発射しませんでした。

<script type="text/javascript"> 
function SetProductImage(imgID) { 
    document.getElementById('imgProduct').src=document.getElementById(imgID).src; 
} 
</script> 

imgProductImage.Attributes["onclick"] = "javascript:SetProductImage('" + imgProductImage.ID + "')"; 

は、私はあなたのような何かをやっていると仮定していますあなたのコメントから

+1

これは、コード内でボタンを作成する場所によって少し異なります。イベントを配線します。より関連性の高いコードを提供できますか? –

+0

pageloadに私はボタンとイベントを作成するが、私はイベントを引き起こすことができない –

+0

@ thiefmasterそれは私がjavascriptを削除した後に動作しません: –

答えて

0

...ありがとう:

void Page_Load(object s, EventArgs e) 
{ 
    ImageButton img = new ImageButton(); 
    img.click += new ImageClickEventHandler(imageButton_Click); 
    Controls.Add(img); 
} 

ポストバックのメカニズムは、コントロールのIDを送信しますので、これは動作しませんEventTargetフィールドに戻り、ターゲットが指定されていないため、ターゲットを処理する場所がわかりません。

これを正しく動作させるには、通常、カスタムユーザーコントロールで表示をラップし、CreateChildControls()メソッドをオーバーライドします。これにより、コントロールが正しい時刻に作成され、ポストバック処理が行われたときに使用できるようになります。

+0

最後にデビッド、 D –

+0

しかし、問題がある...私はイベントで得ることができるが、私はイメージのimageurlを変更することはできませんなぜそれは...どのようにそれを修正することができます.... –

0

コードビハインドイベントを開始しようとしていますか?またはjavascriptイベントですか?エレメントにjavascriptイベントを追加しようとしている場合は、属性をに追加する必要があります。これは、あなたが使用するときは現在存在しません:Attributes ["onclick"]。だからそれは次のようになります:

imgProductImage.Attributes.Add("onclick","SetProductImage('" + imgProductImage.ID + "')"); 
+0

私は何も起こらなかった、私はそれがJavaScriptブロック –

0

あなたが達成しようとしていることが分かったと思います。

ImageButton img = new ImageButton(); 
img.ID = "image1"; 
img.ImageUrl = "YOUR_IMAGE_URL"; 
img.OnClientClick = "SetProductImage('" + img.ID + "');return false;"; 
Controls.Add(img); 

ちょうどあなたが複数の画像buttonesを定義する必要がある場合、それらのそれぞれに固有のIDを設定してください:あなたは、明示的にPage_Loadの中にコントロールのIDを設定する必要があります。

関連する問題