using System; using System.Collections.Generic; using System.Text; using System.Data; using DCSoft.Writer.Data; using System.Data.SqlClient; using HelperDB; namespace DocumentManagement { /// /// 自定义的加载知识节点下拉列表项目的类型 /// /// public class MyListItemsProvider : DCSoft.Writer.Data.IListItemsProvider { /// /// 初始化对象 /// public MyListItemsProvider() { } public ListItemCollection GetListItems(ListItemsEventArgs args) { if (args.KBEntry != null && args.KBEntry.Style == KBEntryStyle.ListSQL) { string sql = args.KBEntry.Value; if (string.IsNullOrEmpty(sql) == false) { IDataReader reader = DbHelperSQL.GetDataReader(sql); ListItemCollection list = CreateList(reader); reader.Close(); return list; }//if }//if return null; } /// /// 根据读取的数据生成项目列表 /// /// 数据读取器 /// 项目列表 private ListItemCollection CreateList(IDataReader reader) { int fieldCount = reader.FieldCount; if (fieldCount == 0) { return null; } ListItemCollection list = new ListItemCollection(); while (reader.Read()) { ListItem item = new ListItem(); if (reader.IsDBNull(0) == false) { item.Text = Convert.ToString(reader.GetValue(0)); } if (fieldCount == 1) { item.Value = item.Text; } else { if (reader.IsDBNull(1) == false) { item.Value = Convert.ToString(reader.GetValue(1)); } } if (fieldCount >= 3) { if (reader.IsDBNull(2) == false) { item.SpellCode = Convert.ToString(reader.GetValue(2)); } } list.Add(item); }//while return list; } } }