2016-04-12 25 views
0

私はRadioButtonListを持っています&私のページのListvie。私はポストバックを避けるために更新パネルを使用しています。私のradioButtonListはlistviewのフィルタとして機能します。私の問題は私のradiobuttonListにあります。私はclientIDmode = staticを使用しなければなりませんが、それを行うと、radiobuttonListが変更されたときに完全なポストバックがあるので、私のupdatepanelは使用しません。 clientIdmode = staticを削除せずにこの問題を解決する方法。私は同じ投稿のためのいくつかの解決策を見たが、実際には理解していませんでした。私を助けてください。clientidmode staticは完全なポストバックを強制するupdatepanelと連携していません

私のコードは以下の構造を持っています。

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<asp:RadioButtonList ID="areasList" CssClass="mark" AutoPostBack="true" runat="server" ClientIDMode="static" RepeatLayout="Flow"> 
</asp:RadioButtonList> 
ListviewHere 
</ContentTemplate> 
</asp:UpdatePanel> 
+0

興味があるだけを使用します。なぜあなたは 'のClientIDMode = "静的に"' "を使用する必要があり、" ん? – ConnorsFan

+0

@ConnorsFan私はradioButtonListをトグルしていますが、私がclientIDMde = staticを使用しないと、ページロード時にIDが変更されるため、トグル機能が動作しません –

答えて

0

スクリプトに問題があります。

ポストバック後にスクリプトが呼び出されていません。

ので、以下のように

<script type="text/javascript"> 
    // below will execute after ajax postback 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 

    function EndRequestHandler(sender, args) { 
     //script 
    } 

    // executes after page load first time 

    //script 

</script> 
0

あなたは(つまり、デフォルト値がある場合は、マークアップで属性を指定するか、しない)AutoIDにRadioButtonListののClientIDModeを設定することができ、コントロールの実際のIDを取得するには、クライアントコードでバインディング式を使用します。

$("#<%= areasList.ClientID %>") 

または

document.getElementById('<%= areasList.ClientID %>') 
関連する問題