在資料庫中用了比較簡單的方法來記錄所有單位
結構大致上如下,此為精簡後的表示,沒用的欄位就沒列出來
大約有200多的單位,也就不一一列出了,意思意思表示一下
畫面上的配置
程式如下
//找指定單位下的所有單位
protectedvoid Button2_Click(object sender, EventArgs e)
{
//只有200多個單位,所以...不管他全部找出來,不含停用單位
//用迴圈處理,避免頻繁連結資料庫
DataTable dt_org = _Ford_GetDataTable("SELECT * FROM EIP_organization WHERE SHOW='Y' ORDER BY organization_parent_id ");
//用來存放符合資料的DataTable
DataTable dt_MatchOrg = dt_org.Clone();
//迴圈處理
foreach (DataRow dr in dt_org.Rows)
{
//逐一取出
//先找到指定單位
if (dr["organization_id"].ToString()==TextBox1.Text)
{
dt_MatchOrg.ImportRow(dr);
Find_SUB_Org(dt_MatchOrg, dr, dt_org);
}
}
GridView1.DataSourceID = "";
GridView1.DataSource = dt_MatchOrg;
GridView1.DataBind();
}
privateDataTable Find_SUB_Org (DataTable dt_SubOrg ,DataRow dr_check ,DataTable dt_AllOrg)
{
DataTable dt_Collation = dt_SubOrg;
foreach (DataRow dr in dt_AllOrg.Rows)
{
if (dr["organization_parent_id"].ToString()==dr_check["organization_id"].ToString())
{
dt_Collation.ImportRow(dr);
//呼叫自己看是不是還有其他資料
Find_SUB_Org(dt_Collation, dr, dt_AllOrg);
}
}
return dt_Collation;
}
結果
留言列表