1

いくつかのhtmlコントロールを使用してJavaスクリプトを実行しています。すべてが正常に動作します。

runat = "server"属性をhtmlコントロールに追加して、コードビハインドでアクセスできるようにする場合を除いて、javaスクリプト関数は機能しません。これは一般的なことですか?javaスクリプトでrunat="server"属性を使用するための回避策はありますか?

または、run at server属性を使用せずに、コードビハインドでHtmlコントロールにアクセスするにはどうすればよいですか?

混乱している。

4

3 に答える 3

2

これは、マークアップが次のようになっているために発生する可能性が最も高いです。

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <div runat="server" id="myDiv">
    </div>
</asp:Content>

つまり、MasterPage などとして機能するものを使用していますINamingContainer。これにより、マークアップに書き出される ID は次のようになります。

<div>
    <div id="ContentPlaceHolder1_myDiv">
    </div>
</div>

asp.net 4 を使用している場合はmyDiv、追加clientidmode="Static"してマークアップを変更すると、次のようになります。

<div>
    <div id="myDiv">
    </div>
</div>

あなたのjavascriptが再び機能することを意味します。以前のバージョンのasp.netを使用している場合は、SHAKKIR SHABBIRが提案したとおりに実行し<%=myDiv.ClientId%>、javascriptで要素を参照して、asp.netが生成するIDの「名前が変更された」バージョンを取得する必要があります。

于 2012-06-22T20:03:47.300 に答える
1

わかりました、runat="server" は問題ありません。

JavaScript を変更する必要があります。

コントロールが次のように入力されている場合:

<input id="control_ID" runat="server" />

コントロールを参照するには、javascript で <% = control_ID.ClientId %> を使用します。

それはうまくいきます。ただし、これが機能しない場合は、コードを共有してください。私が解決します!

于 2012-06-22T19:55:34.883 に答える
0
<img alt="Calendar" onmouseover="javascript:this.style.cursor='hand';"
                    src="~/images/Calander_0.png" 
                    id="ImgCalender"  
                    onclick ="javascript:showCalendarControl('<%=txtAppointmentDate.ClientID  %>','mm/dd/yyyy');" 
                    runat="server"  />

サーバーで実行が設定されている場合、JavaScript は動作しません

于 2013-02-05T06:49:53.460 に答える