2016-08-22 3 views
1

これはどのように私のRadioButtonListルックス(ASP.NET)である:私はまた、JavaScript関数が私のページ上の要素をアニメーション化したbackendClick()と呼ば作成RadioButton-SelectionでJavascript-Functionを呼び出す方法は?

<asp:RadioButtonList ID="RadioButtonListGutscheinArt" Visible="true" runat="server"> 
     <asp:ListItem ID="ListItemZugAbonnement" Value="1" Selected="True" /> 
     <asp:ListItem ID="ListItemBestellungHalbtax" Text="Bestellung Halbtax" Value="2" /> 
</asp:RadioButtonList> 

....

function backendClick() { 
      $("#PanelPassnummer").fadeIn(); 
      $("#textbox").animate({ height: '795px' }, "slow"); 
      $('#Wrapper').animate({ paddingBottom: '20%' }, "slow"); 
      $('html,body').animate({ scrollTop: $("#weiterButtonAbstand").offset().top }, "slow"); 
      $('#weiterButtonAbstand').animate({ marginBottom: '8%' }, "slow"); 
} 

私の目標はにありますListItemBestellungHalbtaxが選択されている場合は、関数backendClick()を実行します。 NOT CLICKEDは、ページが読み込まれているときに関数が実行されるため、ページが読み込まれたときにボタンが選択されています。私のC#コードで今すぐ

は背後に、私はこのような試みた: ....

if(RadioButtonListGutscheinArt.SelectedValue == Convert.ToString(2)) 
    { 
      Page.ClientScript.RegisterStartupScript(this.GetType(), "Callfunction", "backendClick()", true);  

    } 

protected void Page_Loadで)しかし、なしの成功でそれを行う方法上の任意の提案を?おかげで、詳細情報が必要な場合は教えてください。ありがとう

+0

私は少し混乱しています。ページが読み込まれているときに関数を実行しますか?その後、 'AutoPostBack = true'を使用します。 RBListで何かを選択するたびに、ポストバックが行われ、ページがリロードされます – Marco

+0

私の問題は、ページをリロードするとき(そしてラジオボタン2が選択されている場合)、自分の要素がアニメーション化されないということです。 @マルコ –

+0

私はそれがどのように動作するか知りたいです。 RegisterStartUpSciptで動作しません@Marco –

答えて

1

aspコントロールを使用するとIDがクライアント側で変化するため、jquery関数が機能しない理由を説明します。 同じIDのままにするには、ClientIDMode="Static"をaspコントロールに追加する必要があります。

だから、これを試してみてください。

<asp:RadioButtonList ID="RadioButtonListGutscheinArt" ClientIDMode="Static" Visible="true" runat="server"> 
     <asp:ListItem ID="ListItemZugAbonnement" ClientIDMode="Static" Value="1" Selected="True" /> 
     <asp:ListItem ID="ListItemBestellungHalbtax" ClientIDMode="Static" Text="Bestellung Halbtax" Value="2" /> 
</asp:RadioButtonList> 

jQueryのセレクタがあなたのために動作します。

$('#RadioButtonListGutscheinArt input').change(
    function(event){ 
     if ($(this).is(':checked') && event.target.id=="ListItemBestellungHalbtax") { 
      backendClick(); 
     } 
    }); 

と機能]ページを使用して、使用することができリロードされるたびに起動する:

$(document).ready(function(){ 
    backendClick(); 
    //will check the radio button every time 
    $('#ListItemBestellungHalbtax').attr('checked', true); 
}); 

幸運これを試してみてください。

+0

ありがとうございます。残念ながら、ページリロード後に何も起こりません。 :if(ListItemBestellungHalbtax.Selected == true) { Page.ClientScript.RegisterStartupScript(this.GetType()、 "Callfunction"、 "backendClick()"、true); } –

+0

これはクライアント側であり、コードの背後にそれを使用する必要はありません。 –

+0

。それは仕事をしません....任意のアイデアなぜ –

0

すぐ内側次の内容のあなたのaspxページ上のスクリプトブロックを置く:あなたはClientIDMode="Static"を使用している場合、あなたは#<%=ListItemBestellungHalbtax.ClientID %>コールを省略することができますし、普通のID値を使用し

$(function() { 
    if($("#<%=ListItemBestellungHalbtax.ClientID %>").is(':checked')) { 
     backendClick(); 
    } 
})