1


0

私はこのように見えるASPボタンを持っています:


問題はde hideOverlayパートのaspタグです。うまく動作しません。 なぜうまくいかないのですか? そしてどのように私はそれを修正するのですか?

4 Answer


3


以下の例を試してください

最初の例

aspxに


分離コードで

システムを使用する。 System.Collections.Genericを使用します。 System.Linqを使用します。 System.Webを使用する。 System.Web.UIを使用します。 System.Web.UI.WebControlsを使用します。

パブリック部分クラスDefault10:System.Web.UI.Page {protected void Page_Load(object sender、EventArgs e){btnReset.Attributes.Add( "onclick"、string.Format( "hideOverlay( '{0}'、 '{1 '、 "、pnlOverlay.ClientID、pnlAddComment.ClientID));

}}

それはボタンのための以下のソースを生成します


2番目の例

Aspxで

/>

コードビハインドで

システムを使用する。 System.Collections.Genericを使用します。 System.Linqを使用します。 System.Webを使用する。 System.Web.UIを使用します。 System.Web.UI.WebControlsを使用します。

パブリック部分クラスDefault10:System.Web.UI.Page {protected void Page_Load(object sender、EventArgs e){btnReset.DataBind(); }}

それはボタンのための以下のソースを生成します


3番目の例

aspxに

関数hideOverlay(){var pnlOverlayID = '<%= pnlOverlay.ClientID%>'; var pnlAddCommentID = '<%= pnlAddComment.ClientID%>';

//あなたのものをやる}

スクリプト部分のための次のソースを生成します

関数hideOverlay(){var pnlOverlayID = 'pnlOverlay'; var pnlAddCommentID = 'pnlAddComment';

//あなたのものをやる}


0


インラインコードで "="を "#"に置き換えます。 例えば * <%= pnlOverlay.ClientID%> * ⇒ * <%#pnlOverlay.ClientID%> なので、 ClientId *はコンパイル時にインスタンス化されます。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick.aspx[OnClientClick]は、JavaScriptコードなどのクライアントサイドスクリプトを呼び出すためにのみ使用されます。 ビハインドコードでメソッドを呼び出そうとしている場合は、* OnClick *イベントを使用する必要があります。


0


コードを次のように変更します。

  CssClass ="btnCancel PopUpButton"
/>

または `+ string.Format()+`を使用する場合はさらに良い

OnClientClick=<%# string.Format("hideOverlay('{0}', '{1}');", pnlOverlay.ClientID,pnlAddComment.ClientID) %>

そして、リンクをデータバインドすることを忘れないでください。はい


0


これを試すことができます。

{空}私。 背後のコードで

btnReset.OnClientClick = "hideOverlay '" pnlOverlay.ClientID "'、 '" pnlAddComment.ClientID "')";

{空} ii。 2番目の方法は、インラインのJavaScriptを使用することです。

関数newhideOverlay()

{hideOverlay( '<%= pnlOverlay.ClientID%>'、 '<%= pnlAddComment.ClientID%>');

}

また、ボタンの前にpnlOverlayとpnlAddCommentの両方がロードされていることを確認してください。