2015-07-07 3 views
1

В моем приложении, когда я выбираю категорию из раскрывающегося списка (ddlcategory), данные будут связываться в раскрывающемся списке чистоты (ddlpurity). Но страница обновляется. Поэтому я использовал обновление чтобы решить эту проблему (обновление страницы). Теперь данные не являются обязательными для ddlpurity, когда выбраны данные из ddlcategory. Как я могу привязать данные к ddlpurity, не обновляя страницу.выбор данных из выпадающего меню без обновления страницы

жерех дизайн страницы

<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> 
<asp:UpdatePanel runat="server" id="UpdatePanel" updatemode="Conditional"> 
<Triggers> 
    <asp:Asyncpostbacktrigger controlid="ddlcategory" eventname="SelectedIndexChanged" /> 
    </Triggers> 
     <ContentTemplate> 
      <asp:DropDownList ID="ddlcategory" class="form-control txtboxmargin validate[required]" runat="server" 
       AutoPostBack="True" onselectedindexchanged="ddlcategory_SelectedIndexChanged" AppendDataBoundItems="True"> 
      <asp:ListItem Value="">--select category--</asp:ListItem> 
      </asp:DropDownList> 
     </ContentTemplate> 

    </asp:UpdatePanel> 

<asp:DropDownList ID="ddlpurity" 
       class="form-control txtboxmargin" AutoPostBack="True" runat="server" 
       onselectedindexchanged="ddlpurity_SelectedIndexChanged"> 
      </asp:DropDownList> 

C# код:

protected void ddlcategory_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (ddlcategory.SelectedItem.Text == "Gold") 
     { 
      BindDDLGoldPurity(); 
      lblheadpurity.Text = "ADD GOLD PURITY"; 
      txtsalesrate.ReadOnly = true; 

     } 
     if (ddlcategory.SelectedItem.Text == "Silver") 
     { 
      BindDDLSilverPurity(); 
      lblheadpurity.Text = "ADD SILVER PURITY"; 
      txtsalesrate.ReadOnly = true; 

     } 
     if (ddlcategory.SelectedItem.Text == "Gemstones") 
     { 
      txtsalesrate.ReadOnly = false; 
      txtsalesrate.Text = ""; 

      ddlpurity.Items.Clear(); 

     } 

    } 
+1

положить их обоих в одной и той же панели обновления – Jeremy

+0

по словам @Jeremy, вам нужно добавить как 'dropdownlist' внутри панели обновления. И на дополнительной части установите _AutoPostBack = false_ как выпадающего списка – BNN

+0

Но если я добавляю метки (lblcategory, lblpurity), он показывает: «Расширитель не может находиться в другой UpdatePanel, чем элемент управления, который он расширяет». – JinzNaaz

ответ

0

Set AutoPostBack = "False", чтобы избавиться от освежающего поведения.

0

Вы должны обернуть как элементы управления внутри UpdatePanel.

На второй части. Удалить

AutoPostBack="true" 

от DropDownList.

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:UpdatePanel runat="server" ID="UpdatePanel" UpdateMode="Conditional"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="ddlcategory" EventName="SelectedIndexChanged" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:DropDownList ID="ddlcategory" class="form-control txtboxmargin validate[required]" 
      runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlcategory_SelectedIndexChanged" 
      AppendDataBoundItems="True"> 
      <asp:ListItem Value="">--select category--</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="ddlpurity" class="form-control txtboxmargin" AutoPostBack="True" 
      runat="server" OnSelectedIndexChanged="ddlpurity_SelectedIndexChanged"> 
     </asp:DropDownList> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Также вы можете использовать javascript/jquery для выполнения запроса к базе данных.

См reference

+0

ОК .. работает нормально ... Но что, если я должен включить этикетки тоже .. – JinzNaaz

+0

да, вы можете включить это тоже .. – BNN

+0

, но он показывает ошибку..Мы не можем включить div внутри? – JinzNaaz

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