想用TreeView綁定從存儲過程返回的一個Cursor(有id,pid項),請問該如何處理?
因?TreeView只能binding到DataSource,而DataSource又不能直接使用存儲過程做?資料來源,所以需要一種妥協的方法來整合。
1. Server端放置一個InfoCommand,可以通過sql語句取得一個跟存儲過程返回資料完全一樣的結構。
2. Client端關聯到此InfoCommand。
3. 顯示的時候,可以先取得存儲過程的資料,然後用程式新增到WebDataSource的InnerDataSet中。
假設這個WebDataSource的ID為WebDataSource1,代碼參考如下
DataSet ds = new DataSet();
string str = "AT035CMA22J100A0001";
object[] ret = Srvtools.CliUtils.CallMethod("bom_info", "Call_TreeView", new object[] {str});
if (ret[0].ToString() == "0")
{
ds = (DataSet)ret[1];
WebDataSource1.InnerDataSet = ds;
WebDataSource1.DataMember = ds.Tables[0].TableName;
WebTreeView1.WebDataSourceID = "WebDataSource1";
WebTreeView1.KeyField = "TREE_ID";
WebTreeView1.ParentField ="PID";
WebTreeView1.TextField = "PART_NO";
WebTreeView1.Initial();
}