【问题标题】:Set Item limit to be display in ajaxToolkit ComboBox or set the Combobox position downwards in asp.net将项目限制设置为在 ajaxToolkit ComboBox 中显示或在 asp.net 中将 Combobox 位置向下设置
【发布时间】:2015-04-25 06:35:39
【问题描述】:

我在 gridview 中有一个 ajaxtoolkit 组合框,它运行良好,但问题是当我单击下拉按钮时,列表与页面重叠,因此我想将显示的数量限制为每次滚动显示 10 个项目。下一个问题是当我尝试向页面添加更新面板时,它会破坏组合框的呈现。我该如何解决这个问题?提前致谢

这是我在 gridview 中的组合框代码

      <asp:GridView CssClass="pad" ID="dgvOrder" runat="server" BorderStyle="Double" AutoGenerateColumns="False" OnRowDataBound="dgvOrder_RowDataBound" OnRowDeleting="dgvOrder_RowDeleting" HorizontalAlign="Center" >
        <Columns>
        <asp:TemplateField HeaderText="No." AccessibleHeaderText="No.">
                    <ItemTemplate>
                        <%# Container.DataItemIndex + 1 %>
                    </ItemTemplate>
                </asp:TemplateField>
            <asp:TemplateField HeaderText ="Description" AccessibleHeaderText="Description">
                           <ItemTemplate >
                            <ajaxToolkit:ComboBox ID="ddlItems" AutoPostBack="True" AppendDataBoundItems="True" onmouseover="this.size=4;" onmouseout="this.size=1;" DataTextField="item_desc" DataValueField="item_id"  runat="server" AutoCompleteMode="Suggest" ItemInsertLocation="Prepend" OnSelectedIndexChanged="ddlItems_SelectedIndexChanged" DropDownStyle="DropDown" BorderStyle="Double" ></ajaxToolkit:ComboBox> <br />
                             <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please pick an item" ControlToValidate="ddlItems"></asp:RequiredFieldValidator> 
                           </ItemTemplate>
                           </asp:TemplateField>
            <asp:TemplateField AccessibleHeaderText="Inventory Code" HeaderText="Inventory Code">
                <ItemTemplate>
                 <asp:Label ID="lblInvCode" runat="server" Text=""></asp:Label>
                    </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField AccessibleHeaderText="Qty" HeaderText="Qty">
                <ItemTemplate>
             <asp:TextBox ID="txtQty" runat="server" OnTextChanged="txtQty_TextChanged" AutoPostBack="True" onkeyup ="ValidateText(this);"></asp:TextBox><br />       
             <asp:RequiredFieldValidator ID="RequiredFieldValidator23" runat="server" ErrorMessage="Please input qty" ControlToValidate="txtQty"></asp:RequiredFieldValidator> 
                </ItemTemplate>
            </asp:TemplateField>
             <asp:TemplateField AccessibleHeaderText="UOM" HeaderText="UOM">
                <ItemTemplate>
                    <asp:Label ID="lblUOM" runat="server" Text=""></asp:Label>
                    </ItemTemplate>
            </asp:TemplateField>
             <asp:TemplateField AccessibleHeaderText="SOQ" HeaderText="SOQ">
                <ItemTemplate>
                    <asp:Label ID="lblSOQ" runat="server" Text=""></asp:Label>
                    </ItemTemplate>
            </asp:TemplateField>
              <asp:TemplateField AccessibleHeaderText="Reason" HeaderText="Reason">
                <ItemTemplate>
                    <asp:TextBox ID="txtReason" runat="server" Enabled="False"></asp:TextBox>
                    </ItemTemplate>
            </asp:TemplateField>
            <asp:CommandField ShowDeleteButton="True" />

            </Columns>
    </asp:GridView> 

这是我的更新面板代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>

</ContentTemplate>
    <Triggers>
  (whole page inside)
    <asp:AsyncPostBackTrigger ControlID="btnSearch" EventName="Click" />
    <asp:AsyncPostBackTrigger ControlID="txtIdNo" EventName="TextChanged" />
    </Triggers>
    </asp:UpdatePanel>

【问题讨论】:

    标签: c# asp.net gridview combobox updatepanel


    【解决方案1】:

    长项目列表/多输入控件

    ComboBox 列表中的所有项目都将呈现到它所在的网页。另一方面,AutoCompleteExtender 在页面呈现后从其 ServiceMethod 检索项目。当您的 ComboBox 包含相当长的项目列表时,或者当您在同一页面(或同一 UpdatePanel 内)上有相对大量的 ComboBox 时,加载时间可能会显着减慢。当 ComboBoxes 由于必须呈现给浏览器的标记量而执行缓慢时,可以使用 AutoCompleteExtender 来提高性能。

    <ajaxToolkit:ComboBox ID="ComboBox1" runat="server" 
    DropDownStyle="DropDown" 
    AutoCompleteMode="None"
    CaseSensitive="false"
    RenderMode="Inline"
    ItemInsertLocation="Append"
    ListItemHoverCssClass="ComboBoxListItemHover"
      <asp:ListItem>...</asp:ListIem>
      ...
    

    有关更多信息,您可以查看link

    【讨论】:

    • 您好,谢谢,但我尝试了您编写的所有属性,但仍然无法解决问题。谢谢
    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 2018-05-24
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多