0

ユーザーの選択に基づいていくつかのコントロールを有効にする aspx ページを作成しました。

ユーザーがAll2 つのラジオ ボタンを有効にすることを選択した場合、それ以外の場合は非表示にします。

私の宣言部分は次のとおりです。

 <tr>
    <td>
        <asp:Label ID="lblCommunityMembers" runat="server" Text="Community Members" />
    </td>
    <td>

        <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
        </asp:ScriptManagerProxy>
        <asp:UpdatePanel ID="upCommunityMembers" runat="server">
            <ContentTemplate>
                <asp:RadioButton ID="rdbCommunityMembersAll" runat="server" Text="All" GroupName="grpCommMembers" Checked="true" OnCheckedChanged="rdbCommunityMembersAll_CheckedChanged" AutoPostBack="true" />
                <asp:RadioButton ID="rdbCommunityMembersSelectedUsers" runat="server" Text="Selected Users" GroupName="grpCommMembers" OnCheckedChanged="rdbCommunityMembersSelectedUsers_CheckedChanged" AutoPostBack="true" />        
                <SharePoint:ClientPeoplePicker ID="ppCommunityMembers" runat="server" AllowMultipleEntities="true" AllowEmpty="false" Visible="false" />
            </ContentTemplate>

        </asp:UpdatePanel>

    </td>
</tr>
<tr>
    <td>
        <asp:Label ID="lblCommunityCatagory" runat="server" Text="Community Catagory" />
    </td>
    <td>
        <asp:DropDownList ID="ddlCommunityCatagory" runat="server">
            <asp:ListItem Value="0">---- Select One ----</asp:ListItem>
        </asp:DropDownList>
    </td>
    <td>
        <asp:RequiredFieldValidator ID="rfvCommunityCatagory" runat="server" InitialValue="0" ErrorMessage="Please Select Community Catagory"
             ForeColor="Red" ControlToValidate="ddlCommunityCatagory" Display="Dynamic" />
    </td>
</tr>
<tr>

    <td>
        <asp:Label ID="lblCommunityAccess" runat="server" Text="Required Approval?" Visible="false" />
    </td>
    <td>
        <asp:RadioButton ID="rdbRequiredApprovalYes" runat="server" Text="Yes" GroupName="grpCommMembers" Checked="true" Visible="false" />
        <asp:RadioButton ID="rdbRequiredApprovalNo" runat="server" Text="No" GroupName="grpCommMembers" Visible="false"/>        
    </td>        

</tr>

私のコードビハインド:

protected void rdbCommunityMembersSelectedUsers_CheckedChanged(object sender, EventArgs e)
    {
        if (rdbCommunityMembersSelectedUsers.Checked)
        {
            enableControls();


        }
        else
        {
            disableControls();

        }
    }

    protected void rdbCommunityMembersAll_CheckedChanged(object sender, EventArgs e)
    {
        if (rdbCommunityMembersAll.Checked)
        {
            disableControls();

        }
        else
        {
            enableControls();
        }
    }

    protected void enableControls()
    {
        ppCommunityMembers.Visible = true;
        lblCommunityAccess.Visible = true;
        rdbRequiredApprovalNo.Visible = true;
        rdbRequiredApprovalYes.Visible = true;
    }

    protected void disableControls()
    {
        ppCommunityMembers.Visible = false;
        lblCommunityAccess.Visible = false;
        rdbRequiredApprovalNo.Visible = false;
        rdbRequiredApprovalYes.Visible = false;
    }

コミュニティ メンバーが全員に選択されている場合は、「承認が必要ですか?」部分が非表示になるはずです。

しかし、問題は、選択したユーザーを選択すると、ユーザー ピッカー コントロールのみが表示され、必要な承認コントロールが表示されないことです。私は何が欠けていますか?

4

1 に答える 1

0

ラジオ ボタン rdbCommunityMembersAll と rdbCommunityMembersSelectedUsers は更新パネル内にあるため、部分的なポストバックを実行しています。コントロールを UpdatePanel の外に表示するには、次のいずれかを実行できます。

  1. rdbCommunityMembersAll と rdbCommunityMembersSelectedUsers を UpdatePanel の外に移動

  2. 表示する必要があるコントロール (lblCommunityAccess、rdbRequiredApprovalNo、rdbRequiredApprovalYes) を UpdatePanel 内に移動します。

    または

  3. Visible="false" を設定する代わりに、style="display:none" を設定し、javascript/jquery を介して可視性をトリガーします

于 2013-10-09T14:36:52.643 に答える