1

次のラジオボタンリストがあります:

<asp:Panel ID="pnl_select_sign" runat="server" Visible="false" Style="text-align: right">
        <asp:RadioButtonList ID="rb_select_sign" runat="server" AutoPostBack="true" RepeatDirection="Horizontal"
            OnSelectedIndexChanged="rb_select_sign_SelectedIndexChanged" CausesValidation="false"
            AppendDataBoundItems="true">
            <asp:ListItem Selected="True" Value="0">Normal</asp:ListItem>
            <asp:ListItem Value="1">Electronic</asp:ListItem>
        </asp:RadioButtonList>
    </asp:Panel>

cssプロパティを変更したいoverflow-y

から overflow-y :auto; にoverflow-y :hidden;

divの場合id = wrap_form

私が選択した場合ListItem with Value = 1;


FireBugから:

<td>
<input id="ctl00_ContentPlaceHolder1_rb_select_sign_0" type="radio" onclick="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$rb_select_sign$0\',\'\')', 0)" value="0" name="ctl00$ContentPlaceHolder1$rb_select_sign">
<label for="ctl00_ContentPlaceHolder1_rb_select_sign_0">Normal</label>
</td>
<td>
<input id="ctl00_ContentPlaceHolder1_rb_select_sign_1" type="radio" checked="checked" value="1" name="ctl00$ContentPlaceHolder1$rb_select_sign">
<label for="ctl00_ContentPlaceHolder1_rb_select_sign_1">Electronic</label>
</td>
4

2 に答える 2

1

このようなものが機能するはずです:

$('input[id^="ctl00_"]').click(function() {
 if ($(this).val() == 1) {
  $('#wrap_form').css('overflow-y', 'hidden');
 }
})

これがjsfiddleです

于 2013-01-06T11:32:03.537 に答える
1

提案された JavaScript の回答を使用すると、ページのポストバック後に CSS が通常に戻ることに注意してください。あなたはすでに YourRadioButtonListでポストバックを使用しているので、代わりにサーバー側でスタイルを変更できると思います。

アップデート

これを リストの Your method handling item selection change に入れます:

protected void rb_select_sign_SelectedIndexChanged(object sender, EventArgs e)
{
    if (rb_select_sign.SelectedValue == "1")
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "styleChangeScript", "<script type='text/javascript'>var divToChange = document.getElementById('wrap_form'); if(divToChange) { divToChange.style.overflowY = 'hidden' }</script>", false);
    }
    //the rest of the original code of this method should be here
    //...
}

ポストバックを引き起こす他のボタンなどをクリックしたときに機能させるには、Page_Loadページのイベントに同じコード行を配置する必要があります(または、別のメソッドに入れて両方の場所から呼び出すだけです)。

于 2013-01-06T11:48:09.243 に答える