2012-01-21 13 views
0

「favourites」ボタンに追加を作成しようとしています。ユーザーがこのボタンをクリックすると、画像を変更する必要があります(js)。その後、私はasp.netページをポストバックしたいと思いますか?どうすればこの仕事をすることができますか? SOFAR私が得た:javascriptを実行してからポストバックを実行する方法は?

のaspx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 

      function ChangeFavStar() { 
       if ($("#btnAddToFavs").attr('src') == 'starempty.jpg') { 
        $("#btnAddToFavs").attr('src') = 'staradded.jpg'; 
       } 
       else { 
        $("#btnAddToFavs").attr('src') = 'starempty.jpg'; 
       } 
       return true; 
      } 

     }); 

    </script> 
    <style type="text/css"> 
     #btnAddToFavs { 
      height: 79px; 
      width: 121px; 
     } 
    </style> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:ImageButton ID=btnAddToFavs runat=server 
      OnClientClick="ChangeFavStar();" ImageUrl="~/starempty.jpg" 
      Height="74px" Width="109px" /> 

    </div> 
    </form> 
</body> 
</html> 

のCS behindcode

protected void btnAddToFavs_Click(object sender, ImageClickEventArgs e) 
     { 
      //do stuff 
     } 
+0

クライアントハンドラをクリックするとどうなりますか? – vittore

+0

が隠されて起動されない唯一のものを求めているはずです。 '$(document).ready(function(){' wrapper}を削除すれば動作します – vittore

答えて

0

あなたはJavaScript機能が、変更を呼び出すことができますオンボタンはポストバックのために永続化されません。 C#コードでImageUrlプロパティを変更する必要があります。

<script type="text/javascript"> 
     function ChangeFavStar() { 
     if ($("#btnAddToFavs").attr('src') == 'starempty.jpg') { 
       $("#btnAddToFavs").attr('src') = 'staradded.jpg'; 
      } 
      else { 
       $("#btnAddToFavs").attr('src') = 'starempty.jpg'; 
      } 
     } 
    </script> 

マークアップ:

<form id="form1" runat="server"> 
    <div> 
    <asp:ImageButton ID="btnAddToFavs" runat=server 
      OnClientClick="ChangeFavStar();" ImageUrl="~/starempty.jpg" 
      Height="74px" Width="109px" /> 
    </div> 
</form> 
0

変更関数宣言次に持っているものから:

<script type="text/javascript"> 
    function ChangeFavStar() { 
      if ($("#btnAddToFavs").attr('src') == 'starempty.jpg') { 
       $("#btnAddToFavs").attr('src') = 'staradded.jpg'; 
      } 
      else { 
       $("#btnAddToFavs").attr('src') = 'starempty.jpg'; 
      } 
      return true; 
     } 
</script> 
0

あなたはこの方法で行うことができます。 JavaScriptからサーバーサイドクリックイベントを呼び出すことができます。あなたはポストバックのためにこのCLick MeのようにこのJavaスクリプトを呼び出すことができます。

<script type="text/javascript"> 
     function ChangeFavStar() { 
     if ($("#btnAddToFavs").attr('src') == 'starempty.jpg') { 
       $("#btnAddToFavs").attr('src') = 'staradded.jpg'; 
      } 
      else { 
       $("#btnAddToFavs").attr('src') = 'starempty.jpg'; 
      } 

__doPostBack('<%=btnAddToFavs.ClientID %>', ''); 
     } 
    </script> 
関連する問題