例如,在之前做的项目中,查询mhz_xckcr表,select出某个业务的现场勘察人信息,select出的现场勘察人姓名(可能有多个)要在前台datagrid的一个datagridcolmn单元格显示出来。
1.查询表数据,保存到实体类集合list中,并返回list:
/// <summary>
/// 获取现场勘查人列表
/// </summary>
/// <param>业务ID</param>
/// <returns>结果集</returns>
public static List<Mbr_Model> GetKCRList(int id)
{
List<Mbr_Model> list = new List<Mbr_Model>();
string SQLstr = string.Format("select distinct(KCRID),ID,KCRXM from mhz_xckcr a where a.id='{0}'", id);
SQLstr += " order by a.kcrid";
try
{
DataTable table = OracleDBHelp.getDBHelper(OracleDBHelp.DBType.BusinessDB).Query(SQLstr);
foreach (DataRow row in table.Rows)
{
Mbr_Model at = new Mbr_Model();
if (row["id"] != null)
at.ID = Convert.ToInt32(row["id"].ToString());
if (row["kcrid"] != null)
at.KCRID = row["kcrid"].ToString();
if (row["kcrxm"] != null)
at.KCRXM = row["kcrxm"].ToString();
at.ISchecked = true;
list.Add(at);
}
return list;
}
catch (Exception e)
{
return null;
}
}
2.在业务列表的实体类中添加临时属性:xckcrArray(该业务表本身没有字段xckcrArray)。 然后在业务列表的查询方法中,该属性引用以上方法返回的值即可。
at.xckcrArray =YWBL_BLL.GetKCRList(at.ID); //获取现场勘查人集合。
3. 用labelfunction处理datagrid中的一个datagridcolumn单元格显示多字段值。
/**3-2获取-现场勘查人*/
public function XCKCRLabel(item:Object,iCol:int ):String
{
var label_:String = "";
var col:ArrayCollection = item.xckcrArray as ArrayCollection;
for each(var ele:Mbr_Model in col)
{
label_ = label_ + String(ele.KCRXM)+"\x20";
}
return label_;
}