2012-02-18 25 views
1

私のページには2つのドロップダウンカテゴリとサブカテゴリがあります。また、私は同じページにhtmleditorを持っています。以下はカテゴリの選択率変化で、私は、サブカテゴリを移入していますドロップダウン、ということである私は何をやっている私のaspx更新パネルとドロップダウンを選択したインデックスの変更問題

<div class="clearfx"> 
    </div> 
    <div> 
     <label> 
      Description : 
       </label> 
       <div style="padding-left: 10px; margin-left: 146px;"> 
        <cc:HtmlEditor ID="Editor" runat="server" Height="600px" Width="850px" EnableViewState="true" /> 
          </div> 
         </div> 
         <div class="clearfx"> 
         </div> 
         <div> 
          <asp:UpdatePanel runat="server" ID="up" UpdateMode="Always" ChildrenAsTriggers="true"> 
           <ContentTemplate> 
            <label>Category : </label> 
            <asp:DropDownList runat="server" ID="Categories" Width="200px" AutoPostBack="True" 
             OnSelectedIndexChanged="CategoriesSelectedIndexChanged"> 
            </asp:DropDownList> 
            <asp:RequiredFieldValidator ID="rfvCountry" runat="server" ErrorMessage="Choose a category." 
             ControlToValidate="Categories" Display="None" EnableTheming="False" EnableViewState="False" 
             InitialValue="-1" SetFocusOnError="True" ValidationGroup="grpReg"></asp:RequiredFieldValidator> 
            <asp:ValidatorCalloutExtender ID="rfvCountry_ValidatorCalloutExtender" runat="server" 
             Enabled="True" TargetControlID="rfvCountry"> 
            </asp:ValidatorCalloutExtender> 
            <asp:ImageButton runat="server" ID="Refresh" ImageAlign="AbsMiddle" 
             ImageUrl="~/cdn/images/refresh.png" onclick="RefreshClick"/> 
             <span class="helptext">(click on refresh image, incase subcategories do not load.)</span> 
           </ContentTemplate> 

          </asp:UpdatePanel> 

         </div> 
         <div class="clearfx"> 
         </div> 

<div> 
          <label> 
           Sub Category : 
          </label> 
          <asp:DropDownList runat="server" ID="SubCategories" Width="200px"> 
          </asp:DropDownList> 
          <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Choose a sub category." 
           ControlToValidate="SubCategories" Display="None" EnableTheming="False" EnableViewState="False" 
           InitialValue="-1" SetFocusOnError="True" ValidationGroup="grpReg"></asp:RequiredFieldValidator> 
          <asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" Enabled="True" 
           TargetControlID="RequiredFieldValidator2"> 
          </asp:ValidatorCalloutExtender> 
         </div> 

です。私は更新パネルを使用してポストバックを抑制するために、しかし、私の問題は、選択されたインデックスの変更が発生しますが、ドロップダウンのサブカテゴリはバインドされません。私は、更新パネルを削除すると、うまく動作しますが、私のHTMLエディタはその値を失い、それ自身でもページenableviewstate = trueを持っています。私を助けてください。

私の分離コード方法は以下のとおりです。

protected void CategoriesSelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (Categories.SelectedIndex > 0) 
      { 
       BindSubCategory(Common.ParseInt(Categories.SelectedItem.Value)); 
      } 
      else 
      { 
       SubCategories.SelectedIndex = 0; 
       SubCategories.Items.Clear(); 
      } 
     } 

ページの読み込み時のイベント:

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       BindGrid(); 
       BindCategories(); 
      } 
     } 

private void BindCategories() 
     { 
      List<Category> cat = _categoryRepository.GetAll().ToList(); 
      Common.BindDropdown(cat, Categories); // static method 
     } 
public static class Common 
    { 
/// <summary> 
     /// 
     /// </summary> 
     /// <param name="list"></param> 
     /// <param name="ddl"></param> 
     public static void BindDropdown(IList list, DropDownList ddl) 
     { 
      if (list.Count>0) 
      { 


        ddl.DataSource = list; 
        ddl.DataTextField = "Name"; 
        ddl.DataValueField = "Id"; 
        ddl.DataBind(); 
        ddl.Items.Insert(0, new ListItem("---Select---", "-1")); 

      } 
     } 
} 
+0

どこbindsubcategory機能はありますか? – Prabhavith

+0

2つの答えのどちらかがあなたの問題を解決しましたか? –

答えて

-1

これを試してみてください:

<div class="clearfx"> 
</div> 

<div> 
    <label> Description : </label> 
    <div style="padding-left: 10px; margin-left: 146px;"> 
     <cc:HtmlEditor ID="Editor" runat="server" Height="600px" Width="850px" EnableViewState="true" /> 
    </div> 
</div> 

<div class="clearfx"> 
</div> 


<asp:UpdatePanel runat="server" ID="up" UpdateMode="Always" ChildrenAsTriggers="true"> 
    <ContentTemplate> 
     <div> 
      <label>Category : </label> 
      <asp:DropDownList runat="server" ID="Categories" Width="200px" AutoPostBack="True" 
       OnSelectedIndexChanged="CategoriesSelectedIndexChanged"> 
      </asp:DropDownList> 
      <asp:RequiredFieldValidator ID="rfvCountry" runat="server" ErrorMessage="Choose a category." 
       ControlToValidate="Categories" Display="None" EnableTheming="False" EnableViewState="False" 
       InitialValue="-1" SetFocusOnError="True" ValidationGroup="grpReg"></asp:RequiredFieldValidator> 
      <asp:ValidatorCalloutExtender ID="rfvCountry_ValidatorCalloutExtender" runat="server" 
       Enabled="True" TargetControlID="rfvCountry"> 
      </asp:ValidatorCalloutExtender> 
      <asp:ImageButton runat="server" ID="Refresh" ImageAlign="AbsMiddle" 
       ImageUrl="~/cdn/images/refresh.png" onclick="RefreshClick"/> 
      <span class="helptext">(click on refresh image, incase subcategories do not load.)</span> 

      <div class="clearfx"> 
      </div> 

      <div> 
       <label> Sub Category : </label> 
       <asp:DropDownList runat="server" ID="SubCategories" Width="200px"> 
       </asp:DropDownList> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Choose a sub category." 
        ControlToValidate="SubCategories" Display="None" EnableTheming="False" EnableViewState="False" 
        InitialValue="-1" SetFocusOnError="True" ValidationGroup="grpReg"></asp:RequiredFieldValidator> 
       <asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" Enabled="True" 
        TargetControlID="RequiredFieldValidator2"> 
       </asp:ValidatorCalloutExtender> 
      </div> 

     </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 
1

あなたは別のUpdatePanelでサブカテゴリを入れて、適切なトリガ(セットを追加する必要がインデックス変更イベント選択 ドロップダウン「カテゴリ」ドロップダウンで選択された変更されたイベントでトリガーする2番目のパネル)。

<Triggers> 
      <asp:AsyncPostBackTrigger ControlId="Categories" 
       EventName="SelectedIndexChanged" /> 
    </Triggers> 

sample here

関連する問題