2011-02-18 110 views
1

在手風琴控制器內部使用AJAX組合框。事實上,如果這可能是一個問題,它將手風琴控制嵌套在另一部手風琴中。AJAX ComboBox - 缺少下拉按鈕

無論如何 - 我有兩個組合框 - 在第一個組合框上,它似乎在任何頁面上回傳下拉按鈕以查看可用項目列表消失。在第二個,它永遠不會在那裏。

下面是代碼:

<asp:AccordionPane ID="Pane1" runat="server" HeaderCssClass="accordionHeader" ContentCssClass="accordionContent" > 

<Header> 
QUERY VIEW 
</Header> 

<Content> 


     <asp:Label ID="lbl_chkOne" CssClass="label" runat="server" Text="By User" ></asp:Label> 
      <input id="chk_One" type="checkbox" onclick="changePane(0,this)" groupKey="query" /> 
     <asp:Label ID="lbl_chkTwo" CssClass="label" runat="server" Text="All Users" ></asp:Label> 
      <input id="chk_Two" type="checkbox" onclick="changePane(1,this)" groupKey="query" /> 
     <asp:Label ID="lbl_chkThree" CssClass="label" runat="server" Text="Other" ></asp:Label> 
      <input id="chk_Three" type="checkbox" onclick="changePane(2,this)" groupKey="query" /> 
      <br /> 
      <br /> 
      <asp:Accordion ID="InnerAccordion" runat="server"> 
      <Panes> 
      <asp:AccordionPane ID="Pane3" runat="server" Visible="true" > 
      <Content> 
        <asp:Panel ID="Panel1" runat="server"> 
     <asp:Label ID="Label2" runat="server" Text="Select a User:" 
        Style="margin-left:28px" ></asp:Label> 

        <asp:ComboBox ID="cbox_User" runat="server" AutoCompleteMode="SuggestAppend"> 
        </asp:ComboBox> 
       <asp:Label ID="Label3" runat="server" Text="Select a Month:" 
           Style="margin-left:28px" ></asp:Label> 
      <asp:TextBox ID="txt_Date" runat="server"></asp:TextBox> 
      <asp:Label ID="Label1" runat="server" Text="Enter a Price:" 
           Style="margin-left:28px" ></asp:Label> 
      <asp:TextBox ID="txt_Price" runat="server"></asp:TextBox> 
       <asp:CalendarExtender ID="CalendarExtender1" runat="server" 
          TargetControlID="txt_Date" 
          Format="MMMM yyyy" 
          OnClientShown="onCalendarShown" 
          OnClientHidden="onCalendarHidden" 
          BehaviorID="calendar1" > 
       </asp:CalendarExtender> 
       <br /> 
       </asp:Panel> 
      </Content> 
      </asp:AccordionPane> 
      <asp:AccordionPane ID="Pane4" runat="server" Visible="true" > 
      <Content> 
       <asp:Panel ID="Panel4" runat="server"> 
       <asp:Label ID="Label10" runat="server" Text="Select a Group:" 
        Style="margin-left:28px" ></asp:Label> 

        <asp:ComboBox ID="cbox_Group" runat="server" > 
        <asp:ListItem Text="All Groups"> </asp:ListItem> 
        <asp:ListItem Text="Customers" > </asp:ListItem> 
        <asp:ListItem Text="Employees" > </asp:ListItem> 
        </asp:ComboBox> 

       <asp:Label ID="Label11" runat="server" Text="Select a Month:" 
           Style="margin-left:28px" ></asp:Label> 
       <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox> 
      <asp:Label ID="Label12" runat="server" Text="Enter a Price:" 
           Style="margin-left:28px" ></asp:Label> 
      <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox> 

       <br /> 
     </asp:Panel> 
      </Content> 

cbox_User是最初顯示的按鈕之一,然後它消失在回發。 cbox_Groups是從不顯示按鈕的那個。

這裏是背後的代碼數據綁定到cbox_User:

 protected void BindUsers() 
    { 
     IQueryable<AqUser> query = from users in db.AqUser 
            orderby users.username 
            select users; 

     cbox_User.DataSource = query; 
     cbox_User.DataTextField = "username"; 
     cbox_User.DataValueField = "username"; 
     cbox_User.DataBind(); 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     db = new DBEntities(); 
     BindUsers(); 

     if (!Page.IsPostBack) 
      OuterAccordion.Panes[1].Visible = false; 
     else 
      OuterAccordion.Panes[1].Visible = true; 
    } 

我找不到太多,除了一些帖子它possibily被涉及到的div/CSS定位這個在互聯網上。

任何想法?

+1

不是一個解決方案,但是由於這種不可預測性,我放棄了AjaxControlToolkit。 DropDownListExtenders不能可靠地填充,因爲事件順序問題越來越難以排除故障,因爲表單變得更加複雜。我會消除任何易於用jQuery替代的東西,比如手風琴窗格。一旦我加速了jQuery,我就再也沒有回頭過,真的很容易。學習曲線一點也不差,特別是當你花費數小時在這類事情上碰壁時。 – 2011-02-24 19:09:05

回答

1

永遠不能解決這個問題。必須是他們需要解決的一個大問題。

我用DropDownList而不是ComboBox,它工作正常。