我在页面用DropDownList显示民族,可现在把56个民族全部显示出来了,用户体验不是很好,我想显示10条数据,其余的数据用滚动条显示出来,我在网上找了说是用使用autocomplete,ajax autocomplete  或者用text和div来模拟dropdownlist。这我不知道怎么弄,有没有更简单的办法?高手指点!

解决方案 »

  1.   

    DropDownList只有在XP上才那样显示,其他操作系统都是指显示一部分的
      

  2.   

    用一个ul,里面放56个li,加个滚动条。双击某个li把数据取出来。
      

  3.   

    本帖最后由 net_lover 于 2012-03-20 17:00:06 编辑
      

  4.   


       <tr>
                                    <td class="whitebg" align="right">
                                       民族:&nbsp;</td>&nbsp; 
                                    <td align="left" valign="middle" class="whitebg">&nbsp;
                                             <asp:DropDownList ID="ddlNation" runat="server" AppendDataBoundItems="True">
                                              <asp:ListItem Value="-1" Text="请选择"  size ="10"></asp:ListItem>
                                           </asp:DropDownList>
                                        <%--   <asp:ListBox ID ="ddlNation"  runat ="server" Rows ="10" AppendDataBoundItems ="true">
                                           <asp:ListItem Value ="-1" Text ="请选择"></asp:ListItem>
                                           </asp:ListBox>--%>
                                    </td>
                                </tr>
    后台是这样写的:
        /// <summary>
        ///根据类型(1学历 2学位 3工资档次 4工作级别 5预算金额来源 6资金用途类型 7人事关系类型 8会议 9项目周期 10 政治面貌 11 民族)得到列表
        /// </summary>
        /// <returns></returns>
        public void GetNations()
        {
            DropDownListBind(this.ddlNation, m_BasicConfigurationBus.GetBasicConfigurationByType("11").Value, "BC_ID", "BC_NAME");//获取民族
            //ddlNation.DataTextField = "BC_NAME";
            //ddlNation.DataSource = m_BasicConfigurationBus.GetBasicConfigurationByType("11").Value;
            //ddlNation.DataBind();
        }
      

  5.   

    我是新手我可以这样放吗?   /// <summary>
        ///根据类型(1学历 2学位 3工资档次 4工作级别 5预算金额来源 6资金用途类型 7人事关系类型 8会议 9项目周期 10 政治面貌 11 民族)得到列表
        /// </summary>
        /// <returns></returns>
        public void GetNations()
        {
            ddlNation.Attributes.Add("size",10);
            DropDownListBind(this.ddlNation, m_BasicConfigurationBus.GetBasicConfigurationByType("11").Value, "BC_ID", "BC_NAME");//获取民族
            //ddlNation.DataTextField = "BC_NAME";
            //ddlNation.DataSource = m_BasicConfigurationBus.GetBasicConfigurationByType("11").Value;
            //ddlNation.DataBind();
        }
      

  6.   


    这个不是我想要的效果,这和ListBox 设置Rows 的属性一样的效果了,我想的是点击下拉框弹出个层,这些数据显示在层里边,其余的显示滚动条
      

  7.   

    直接用DropDownList做不到,只能用DIV模拟
      

  8.   

    直接设置DropDownList的属性就可以啊,不用在后台设置。如果需要,就在Page_Load事件里设置就可以了
      

  9.   


    给DropDownList设置什么属性?
      

  10.   


    用Div怎么模拟,高手指点一下?
      

  11.   

    http://jqueryui.com/demos/autocomplete/#default
      

  12.   

    下拉框控件:(DropDownList)
    获取与设置下拉框的数据集合:
    xx.Items;
    插入,删除项:
    xx.Items.Add(字符串); //末尾插入一个新项
    xx.Items.AddRange(ListItem[]); //末尾插入一个新项数组
    xx.Items.Insert(索引,字符串); //插入一个新项
    xx.Items.RemoveAt(索引); //删除一个项
    xx.Items.Clear(); //删除所有项
    获取当前选择项的索引及文本:
    xx.SelectedIndex;
    xx.SelectedValue;
    获取项的数目:
    xx.Items.Count;
    获取某项的文本:
    xx.Items[索引];
    关于数据绑定:
    xx.DataSource = SqlDataReader或DataSet对象;//设置数据源xx.DataTextField = 列名; //客户端字段
    xx.DataValueField = 列名; //服务端字段
    xx.DataBind(); //数据绑定
      

  13.   

            //获取与设置下拉框的数据集合
            ddlNation.Items;
            //插入,删除项
            ddlNation.Items.Add("");//末尾插入一个新项
            ddlNation.Items.AddRange(ListItem[]);//末尾插入一个新项数组
            ddlNation.Items.Insert();//插入一个新项
            ddlNation.Items.RemoveAt();////删除一个项
            ddlNation.Items.Clear(); //删除所有项
            //获取当前选择项的索引及文本
            ddlNation.SelectedIndex;
            ddlNation.SelectedValue;
            //获取项的数目
            ddlNation.Items.Count;
            //获取某项的文本
            ddlNation.Items[];
            //数据绑定
            DropDownListBind(this.ddlNation, m_BasicConfigurationBus.GetBasicConfigurationByType("11").Value, "BC_ID", "BC_NAME");//获取民族我这里不知道怎么写了,帮忙说下?