این برای پر کردن ساختار درختی هست
private void SecurityAccessFrm_Load(object sender, EventArgs e)
{
try
{
_acountsTb = CheckPermission.SelectAllPermission();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
PopulateTreeView("0", null);
}
/// <summary>
/// پر کردن ساختار درختی
/// </summary>
private void PopulateTreeView(string parentId, TreeNode parentNode)
{
TreeNode childNode;
foreach (DataRow dr in _acountsTb.Select("[Parent]='" + parentId + "'"))
{
TreeNode t = new TreeNode();
t.Text = dr["Title"].ToString();
t.Name = dr["TagId"].ToString();
t.Tag = _acountsTb.Rows.IndexOf(dr);
if (parentNode == null)
{
treeView1.Nodes.Add(t);
treeView1.CheckBoxes = true;
childNode = t;
}
else
{
parentNode.Nodes.Add(t);
childNode = t;
}
PopulateTreeView(dr["TagId"].ToString(), childNode);
}
}
برا بخش ذخیره هم یه کم شلوغه اجازه بدید اصلاح کنم میدم. خودمم الان قاطی میکنم
خب برای جدول دسترسی ها هم یه ستون عنوان نیاز داری (title) و یه ستون تگ (tagid) و یه ستون پدر(Parent) که برای مثال به صورت زیر مقدار دهی بشه.
برای منو اول میتونی عنوان رو هرچی دلت خواست بزاری برای تگ A و برای پدر شاخه اول 0
برای زیر منوٍ، منو اول عنوان هرچی دلت خواست و برای تگ A-A و برای پدر A