【问题标题】:asp.net sql datasource bounded devexpress combobox add itemasp.net sql 数据源有界 devexpress 组合框添加项目
【发布时间】:2011-09-08 11:05:50
【问题描述】:

您好,我的 devexpress 组合框与 sql 数据源绑定。我正在使用

自动完成数据源中的项目

OnItemsRequestedByFilterCondition函数

我正在过滤项目并将过滤后的数据源绑定到组合框

我想在过滤结果的顶部添加一个“全选”项。

我已经尝试过了

combobox.Items.Add(0,new ListEditItem(-1,"Select All"));

但这不起作用。我找到了其他数据源(例如列表等)的解决方案,但没有找到 sql 数据源的解决方案。任何线索都会有所帮助,谢谢。

【问题讨论】:

    标签: asp.net combobox devexpress


    【解决方案1】:

    combobox.Items.Add(0,new ListEditItem(-1,"Select All")); 可能会在您将组合框绑定到数据源之前被调用。

    最好的方法是在数据源上添加相同的字段,或者在将组合框与数据绑定后添加项目。

    【讨论】:

    • 感谢您的回答我在绑定数据源之前和绑定数据源之后都尝试过,因为我使用的是 sql 数据源,我从数据库中获取所有数据,并且如果我插入也不想添加无意义的记录将一个元组数据库化,该元组也将被过滤,它应该始终存在。
    【解决方案2】:

    查看 Add() 的不同方法签名,当 Add 接受 2 个参数时(字符串文本、对象值)。另一方面,Insert() 是接受(int 索引,ListEditItem 项)。尝试如下使用 Insert 方法:

    combobox.Items.Insert(0, new ListEditItem("Select All", -1);
    

    【讨论】:

    • 感谢您的回答,但 insert add 的功能相同,只是 insert 需要一个索引参数。无论我尝试了什么,但仍然无法将项目添加到顶部。
    【解决方案3】:

    我这样做的方式是在绑定数据之前添加-1项

    我看到您遇到的问题是您直接绑定到 SQL 数据,我绑定到从 SQL 调用派生的对象。例如:

    var contractors = ContractorCollection.GetAll().Active();
    contractors.Sort(new Contractor.NameAscending());
    
    contractors.Insert(0, new Contractor() { ID = -1, Name = "Not Applicable or Required" });
    this.cboContractors.TextField = "Name";
    this.cboContractors.ValueField = "ID";
    this.cboContractors.DataSource = contractors;
    this.cboContractors.DataBind();
    

    如您所见,我使用的是从内部 SPROC 调用构建的集合。这会填充集合,然后绑定到代码中。

    我怀疑您绑定到 SQLDataSource 控件?

    【讨论】:

      猜你喜欢
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多