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;
}
}
}