2013-08-26 2 views
3

Я пытаюсь вызвать SelectedIndexChanged из выпадающего списка ddlMake, но это событие не срабатывает, если я сдвигаю ddlMake за пределами моего CreateUserWizard, он будет работать. Могу ли я делать ничего плохого:asp.net + ddl SelectedIndexChanged не запускается внутри шаблона содержимого CreateUserWizard

<asp:CreateUserWizard runat="server" ID="RegisterUser" ViewStateMode="Disabled" OnCreatingUser="RegisterUser_CreatingUser" OnCreatedUser="RegisterUser_CreatedUser" > 
      <LayoutTemplate> 
       <asp:PlaceHolder runat="server" ID="wizardStepPlaceholder" /> 
       <asp:PlaceHolder runat="server" ID="navigationPlaceholder" /> 
      </LayoutTemplate> 
      <WizardSteps> 
       <asp:CreateUserWizardStep runat="server" ID="CreateUserWizardStep1"> 
        <ContentTemplate> 
         <p class="message-info"> 
          Passwords are required to be a minimum of <%: Membership.MinRequiredPasswordLength %> characters in length. 
         </p> 
         <p class="validation-summary-errors"> 
          <asp:Literal runat="server" ID="ErrorMessage" /> 
         </p> 
         <div class="row-fluid MT35"> 
          <div class="span3">User ID:</div> 
          <div class="span8"> 
           <asp:TextBox runat="server" ID="UserName" /> 
           <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="UserName" 
            CssClass="field-validation-error" 
            ErrorMessage="The user name field is required." Display="Dynamic" /> 
           <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Text="Username length must be between 5 to 12 characters without spacing." 
            ControlToValidate="UserName" SetFocusOnError="true" 
            ValidationExpression="^[a-zA-Z0-9'@&#_]{5,12}$" Display="Dynamic" /> 
          </div> 
          <div class="row-fluid "> 
           <div class="span3">Password:</div> 
           <div class="span8"> 
            <asp:TextBox runat="server" ID="Password" TextMode="Password" /> 
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="Password" 
             CssClass="field-validation-error" ErrorMessage="The password field is required." /> 
           </div> 
           <div class="row-fluid "> 
            <div class="span3">Confirm Password:</div> 
            <div class="span8"> 
             <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" /> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="ConfirmPassword" 
              CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The confirm password field is required." /> 
             <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
              CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The password and confirmation password do not match." /> 
            </div> 
           </div> 

           <div class="row-fluid MT35"> 
            <div class="span3">Your Car:</div> 
            <div class="span8 YourCarInformation"> 
            <asp:DropDownList ID="ddlCarMake" OnSelectedIndexChanged="ddlMake_SelectedIndexChanged" AutoPostBack="True" runat="server" CssClass="span12"></asp:DropDownList> 
            <asp:DropDownList ID="ddlCarModel" runat="server" CssClass="span12"></asp:DropDownList> 
            <asp:TextBox ID="txtRegistration" CssClass="pull-left" runat="server" placeholder="registration date dd/mm/yyyy"></asp:TextBox> 
           </div> 
            </div> 
           </div> 
           <div class="row-fluid"> 
            <div class="span3">Recieve Newsletter:</div> 
            <div class="span8 RadioBtn"> 
             <label class="radio"> 
              <asp:RadioButtonList ID="rbNewsLetter" runat="server" RepeatDirection="Horizontal"> 
               <asp:ListItem Text="Yes" Value="true" Selected="True" /> 
               <asp:ListItem Text="No" Value="false" /> 
              </asp:RadioButtonList> 
             </label> 
            </div> 
           </div> 
          </div> 
         </div> 
        </ContentTemplate> 
        <CustomNavigationTemplate /> 
       </asp:CreateUserWizardStep> 
      </WizardSteps> 
     </asp:CreateUserWizard> 

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"]; 

      DropDownList ddlCarMake = 
       (DropDownList)CreateUserWizardStep1.ContentTemplateContainer.FindControl("ddlCarMake"); 
      DropDownList ddlCarModel = 
       (DropDownList)CreateUserWizardStep1.ContentTemplateContainer.FindControl("ddlCarModel"); 

      ddlCarMake.DataSource = ds.Tables[0]; 
      ddlCarMake.DataTextField = "CarMake"; 
      ddlCarMake.DataValueField = "CarMake"; 
      ddlCarMake.DataBind(); 
      ddlCarMake.Items.Insert(0, new ListItem("Any", "")); 
      ddlCarMake.Items.Insert(ds.Tables[0].Rows.Count + 1, new ListItem("Others", "Others")); 

      ddlCarModel.Items.Insert(0, new ListItem("Any", "")); 
     } 
    } 

protected void ddlMake_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    VehicleBLL vehicleBll = new VehicleBLL(); 

    DropDownList ddlCarMake = (DropDownList)CreateUserWizardStep1.ContentTemplateContainer.FindControl("ddlCarMake"); 
    DropDownList ddlCarModel = (DropDownList)CreateUserWizardStep1.ContentTemplateContainer.FindControl("ddlCarModel"); 

    DataSet ds = null; 
    if (ddlCarMake.SelectedIndex != 0) 
    { 
     ds = vehicleBll.GetCarModel(ddlCarMake.SelectedValue); 

     ddlCarModel.DataSource = ds.Tables[0]; 
     ddlCarModel.DataTextField = "CarModel"; 
     ddlCarModel.DataValueField = "CarModel"; 
     ddlCarModel.DataBind(); 

     ddlCarModel.Items.Insert(0, new ListItem("Any", "")); 
    } 
} 
+0

Это выглядит действительным. Вы пытались удалить/повторно добавить этот элемент управления? Или выполнить перестройку проекта? – jadarnel27

ответ

3

Ok, нашел ответ после полдня прошло, удалить ViewStateMode = «Инвалид» в контроле CreateUserWizard и все работает отлично.

+0

У меня была такая же проблема, в том числе внутри CreateUserWizard. То же самое решение. Спасибо – Jono

-1

я думаю, что вы должны сделать это первым поставило DropDownList в обновлении панели затем положить AutoPostBack в DROPDOWNLIST собственности к истинным , который решит проблему

Смежные вопросы