0

サイトにユーザーを作成するためにCreateWizardStepを使用しています...新しいステップを追加し、ステップ内にCheckBoxListを配置しましたが、このコントロールを検索しようとしていますが、コードスニップの下にnull参照エラーが返されます:

ASPX

<asp:CreateUserWizard ID="RegisterUserWithRoles" runat="server" ContinueDestinationPageUrl="~/Default.aspx" LoginCreatedUser="False" OnActiveStepChanged="RegisterUserWithRoles_ActiveStepChanged" ActiveStepIndex="1">
    <WizardSteps>
        <asp:CreateUserWizardStep runat="server" />
        <asp:WizardStep ID="SpecifyRolesStep" runat="server" AllowReturn="False" StepType="Step" Title="Specify Roles">
            <asp:CheckBox ID="RoleList" runat="server" />
        </asp:WizardStep>
        <asp:CompleteWizardStep runat="server" />
    </WizardSteps>
</asp:CreateUserWizard>

C#

// Reference the SpecifyRolesStep WizardStep .
WizardStep SpecifyRolesStep = RegisterUserWithRoles.FindControl("SpecifyRolesStep") as WizardStep;

// Reference the RoleList CheckBoxList 
CheckBoxList RoleList = SpecifyRolesStep.FindControl("RoleList") as CheckBoxList;

// Bind the set of roles to RoleList 
RoleList.DataSource = System.Web.Security.Roles.GetAllRoles();
RoleList.DataBind();

StepWizard 内でこの CheckBoxList コントロールを見つけるにはどうすればよいですか?

4

2 に答える 2

1

asキーワードがチェックボックスをチェックボックスリストとしてキャストしようとして失敗したため、null である可能性があります。

RoleList を次のように変更してみてください<asp:CheckBoxList ID="RoleList" runat="server"> </asp:CheckBoxList>

于 2013-07-08T16:43:21.857 に答える
0

コントロールにアクセスするには、最初にウィザードの手順に進む必要があります

if (Wizard1.ActiveStep.Title == "Specify Roles")
        {
            CheckBox RoleList = RegisterUserWithRoles.ActiveStep.FindControl("RoleList") as CheckBox;

        }

ここでこれを見つけました: http://forums.asp.net/t/1265377.aspx/1

于 2013-07-08T16:47:00.807 に答える