2011-10-31 11 views
1

私はASP.Netとウェブサイトを書いています。JavascriptはHtmlサーバーコントロールでは機能しませんか?

私は<div> <span>ようhtml generic controlsがたくさんあるので、..に

ます私はいくつかのonclickのjavascript機能、onmouseoverのjavascript機能を持っている...

彼らが正常に動作している..

その後、私は必要サーバー側でそれらを制御します。

だから、私はrunat="server"を追加。..その後

、すべてのJavaScriptはもう働いていない..私は、彼らがすべてのイベントだって働いていない理解

はすぐに戻って、サーバ側へ行きます。

だから、とにかくそれらを動作させるためにはありますか?

などについては

、上記のコードが動作している

<div id="myDiv1" onclick="myfunction(para1)"><img src="..." /></div> 

..

<div id="myDiv1" runat="server" onclick="myfunction(para1)"><img src="..." /></div> 

上記のコードは、おそらく

で、私はそれを動作させることができます...

が動作していません

<div id="externalDiv1" onclick="myfunction(para1)"><div id="myDiv1" runat="server" ><img src="..." /></div></div> 

他の方法で?

+0

コード?あなたが示唆していることは本当に意味をなさない。 –

+0

私はコードを追加しました。 – william

+0

javascriptの外観がうまくいかないのはなぜですか? –

答えて

0

サーバー側またはクライアント側のコントロールは、javascriptに関する限り違いはありません。すべてのサーバー側のコントロールは、通常のHTMLコントロールとしてレンダリングされます。あなたのjavascript関数がうまくいけないのは、間違ったIDでアクセスしている可能性があるからです。なぜなら、サーバー側のコントロールを作ることによって、IDは<parent_id>_<control_id>のようになります。

は、例えば、スパン要素は、このように宣言:ASP.NET 4.0 staticに設定することができるCliendIDModeと呼ばれる機能を有している

<span id="MainContent_mylabel"> testing</span> 

<span id="mylabel" runat="server"> testing</span> 

はとしてレンダリングされてしまうことがありつまり、マークアップのIDは、ページのレンダリング後も変更されません。

1

document.getElementById()を使用してidで要素を取得したとします。マスターページを使用している場合、ページにレンダリングした後にサーバーコントロールのIDが変更されます。その場合、クライアントID を使用する必要があります。

var myDiv1 = document.getElementById("<%= myDiv1.ClientID %>"); 
関連する問題