1.สร้าง menu กำหนดแค่ id ="Menu1"
2 class clsMenu เป็นการ ๆ query ข้อมูลจาก ตาราง แล้วส่งกลับมาเป็น Dataset ชื่อ "tbMenuList"
public class clsMenu
{
private int _Branch;
public int Branch
{
get { return _Branch; }
set { _Branch = value; }
}
public DataSet LoadMenu(int Branch)
{
String strSQL=".........................."
SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionstr"].ToString());
SqlCommand sqlCmd = new SqlCommand("strSQL", sqlConn);
sqlCmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter sqlAdapter = new SqlDataAdapter();
sqlAdapter.SelectCommand = sqlCmd;
DataSet dsDataSet = new DataSet();
try
{
sqlConn.Open();
sqlAdapter.Fill(dsDataSet, "tbMenuList");
return dsDataSet;
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCmd.Dispose();
sqlConn.Dispose();
sqlAdapter.Dispose();
dsDataSet.Dispose();
}
}
}
3.การดึงค่าจาก Dataset ลงสู่ MenuItem
clsMenu xLoad = new clsMenu();// คลาสที่ใช้ติดต่อดาต้าเบส
DataSet xDataset = new DataSet();
xDataset = xLoad.LoadMenu(Convert.ToByte(Session["Branch"])); //ดึงข้อมูลของdb ไว้ที่ Dataset
string xMenuName = "";
foreach (DataRow xRow in xDataset.Tables["tbMenuList"].Rows) //แยกข้อมูลจาก dataset table ลง menu item
{
MenuItem xChild = new MenuItem();
xChild.Text = xRow["TypeName"].ToString();
xChild.NavigateUrl = "../searchType.aspx?TypeNo=" + xRow["TypeNo"].ToString();
if (xMenuName == xChild.Text)
{
MenuItem xSub2 = new MenuItem();
xSub2.Text = xRow["SubTypeName"].ToString();
xSub2.NavigateUrl = "../" + "searchSubType.aspx?TypeNo=" + xRow["TypeNo"].ToString()
+ "&SubTypeNo=" + xRow["SubTypeNo"].ToString();
xSub2.Target = "_parent";
Menu1.Items[Menu1.Items.Count - 1].ChildItems.Add(xSub2);
//xSub2 = null;
}
else
{
MenuItem xSub1 = new MenuItem();
xSub1.Text = xRow["SubTypeName"].ToString();
xSub1.NavigateUrl = "../" + "searchSubType.aspx?TypeNo=" + xRow["TypeNo"].ToString()
+ "&SubTypeNo=" + xRow["SubTypeNo"].ToString();
xSub1.Target = "_parent";
xChild.ChildItems.Add(xSub1);
//xSub1 = null;
xMenuName = xRow["TypeName"].ToString();
Menu1.Items.Add(xChild);
}
}
xLoad = null;
}
4 ใน web.config ให้ แอดนี้ไปด้วยนะ
ใน tag
*** อาจจะไปกอป Data Source จากการ connect ผ่านเครื่องมือ datasource มาวางก็ได้ง่ายดี
3 ความคิดเห็น:
ครั้งต่อไปจะอธิบาย การใช้ TreeView NOde กับ sqlserver
public void LoadMenu()
{
clsMenu xLoad = new clsMenu();
DataSet xDataset = new DataSet();
xDataset = xLoad.LoadMenu(Convert.ToByte(Session["Branch"]));
string xMenuName = "";
foreach (DataRow xRow in xDataset.Tables["tbMenuList"].Rows)
{
TreeNode xChild = new TreeNode();
xChild.Text = xRow["TypeName"].ToString();
xChild.NavigateUrl = "../searchType.aspx?TypeNo="+xRow["TypeNo"].ToString();
if (xMenuName == xChild.Text)
{
TreeNode xSub2 = new TreeNode();
xSub2.Text = xRow["SubTypeName"].ToString();
xSub2.NavigateUrl = "../"+"searchSubType.aspx?TypeNo="+xRow["TypeNo"].ToString()
+"&SubTypeNo="+xRow["SubTypeNo"].ToString();
xSub2.Target = "_parent";
tvMenu.Nodes[tvMenu.Nodes.Count - 1].ChildNodes.Add(xSub2);
//xSub2 = null;
}
else
{
TreeNode xSub1 = new TreeNode();
xSub1.Text = xRow["SubTypeName"].ToString();
xSub1.NavigateUrl = "../" + "searchSubType.aspx?TypeNo=" + xRow["TypeNo"].ToString()
+ "&SubTypeNo=" + xRow["SubTypeNo"].ToString();
xSub1.Target = "_parent";
xChild.ChildNodes.Add(xSub1);
//xSub1 = null;
xMenuName = xRow["TypeName"].ToString();
tvMenu.Nodes.Add(xChild);
}
}
xLoad = null;
}
public DataSet LoadMenu(int Branch)
{
String strSQL = "....";
SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionstr"].ToString());
SqlCommand sqlCmd = new SqlCommand(strSQL, sqlConn);
sqlCmd.CommandType = CommandType.StoredProcedure;
//SqlParameter paramBranch = new SqlParameter("@Branch", SqlDbType.TinyInt);
//paramBranch.Direction = ParameterDirection.Input;
//paramBranch.Value = Branch;
//sqlCmd.Parameters.Add(paramBranch);
SqlDataAdapter sqlAdapter = new SqlDataAdapter();
sqlAdapter.SelectCommand = sqlCmd;
DataSet dsDataSet = new DataSet();
try
{
sqlConn.Open();
sqlAdapter.Fill(dsDataSet, "tbMenuList");
return dsDataSet;
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCmd.Dispose();
sqlConn.Dispose();
sqlAdapter.Dispose();
dsDataSet.Dispose();
}
}
แสดงความคิดเห็น