Spread的ComboxTypeCell单元格模糊输入
版主:Win 下 Spread10的ComboxTypeCell单元格模糊输入有好的解决办法码?
问题已经收到,明天验证后给你回复 Richard.Ma:
您好,应用上急需实现这个功能,请帮提供下帮助,谢谢!
你好,昨天帮你验证了一下,这个目前没有办法完全实现,
但是Spread 的ComboxTypeCell提供了这两个属性,可以基本实现你需要的功能,
可以模糊筛选出数据,但是需要鼠标点击确认,不能在筛选出的数据上按方向键来选择,否则筛选列表会消失
我是希望通过数据库查询结果添加到下拉列表中供选择,能否有自定义控件的办法实现?啊能提供下这方面的demo或参考!谢谢! 如果是要绑定一个datatable 的话,可以使用MultiColumnComboBoxCellType
以及你需要的模糊查询功能,也可以在此基础上扩展
自定义单元格类型继承此类型,下面有一个参考代码,注意:因为此类型还是会自动填充单元格中的数据,因此无法完全实现模糊搜索,仅能首字母搜索
使用自定义类型
fpSpread1.ActiveSheet.Cells.CellType = new FilterComboCellType(datatable dt) ;
自定义类型
public class FilterComboCellType: FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType
{
DataTable dt;
public FilterComboCellType(DataTable dt)
{
this.EditorValueChanged += FilterComboCellType_EditorValueChanged;
this.DataSourceList = dt;
this.AutoSearch =FarPoint.Win.AutoSearch.SingleCharacter;
this.DataColumn = 1;
this.ColumnEdit = 1;
this.ButtonAlign = FarPoint.Win.ButtonAlign.Right;
this.ListAlignment = FarPoint.Win.ListAlignment.Right;
this.ListWidth = 500;
this.ListOffset = 5;
this.MaxDrop = 5;
this.dt = dt;
}
private void FilterComboCellType_EditorValueChanged(object sender, EventArgs e)
{
if (this.GetEditorValue() == null || string.IsNullOrEmpty(this.GetEditorValue().ToString()))
{
this.DataSourceList = dt;
return;
}
string condition = dt.Columns.ColumnName + " like '%"+this.GetEditorValue()+"%'";
DataTable newdt = new DataTable();
newdt = dt.Clone();
DataRow[] dr = dt.Select(condition);
for (int i = 0; i < dr.Length; i++)
{
newdt.ImportRow((DataRow)dr);
}
this.DataSourceList = newdt;
}
} 好的,谢谢!我试试。 不客气 博主:您好!下列代码中如何设置记录条目和行间距?
comboBoxType.Items = items;
comboBoxType.MaxDrop = items.Length;
cbo.ListControl.Items.Clear();
cbo.ListControl.Items.AddRange(items);
cbo.ShowList(true);
cbo.SelectedItem = null; 行间距不支持设置
另外,没明白你说的如何设置记录条目,如果你是意思就是设置下拉选项的化,需要同时设置
ItemData和Items,前者是存储的值列表,后者是显示的值列表,一一对应。
页:
[1]