PDA

View Full Version : پر کردن treeView در صورتی که متد پر کردن در کلاس دیگری باشد؟؟؟



samira6446
یک شنبه 20 مرداد 1392, 14:07 عصر
سلام دوستان
من در صفحاتم از یک treeview استفاده کرده ام چون در چندین صفحه قرار است یک کد تکراری رو بنویسم ترجیح دادم ببرم توی یک کلاس دیگر کد پر کردن را بگذارم و فقط فراخوانی اش کنم
ولی
در مقدار بازگشتی که باید برگرداند دچار مشکل شدم؟؟
این کد پر کردن treeview هستش در لود صفحه و انتهای کد رو نگاه کنید که treeview را پر می کنه
حالا اگر ببرم یک کلاس دیگه مقدار بازگشتی و دو خط آخر رو باید چه طور تغییر بدم؟

این کد من هستش:



[LEF
T]
protected void Page_Load(object sender, EventArgs e)
{
//تابع مربوط به tree view
if (!IsPostBack)
{
fill_Tree();
}
}
void fill_Tree()
{
SqlConnection con = new SqlConnection(@"Data Source=Alireza-PC\Sql2008;Initial Catalog=DBSport;Integrated Security=True");
con.Open();
SqlCommand SqlCmd = new SqlCommand("Select * from mem_group", con);
SqlDataReader Sdr = SqlCmd.ExecuteReader();
SqlCmd.Dispose();

string[,] ParentNode = new string[100, 2];
int count = 0;
while (Sdr.Read())
{
ParentNode[count, 0] = Sdr.GetValue(Sdr.GetOrdinal("code")).ToString();
ParentNode[count++, 1] = Sdr.GetValue(Sdr.GetOrdinal("name")).ToString();
}
Sdr.Close();

for (int loop = 0; loop < count; loop++)
{
TreeNode root = new TreeNode();
root.Text = ParentNode[loop, 1];
root.Target = "_blank";
root.Value = ParentNode[loop, 0];
//root.NavigateUrl = "Tree.aspx";

SqlCommand SqlCmd2 = new SqlCommand("Select * from group_2 where group_code =" + ParentNode[loop, 0], con);
SqlDataReader Sdr1 = SqlCmd2.ExecuteReader();
SqlCmd2.Dispose();

//سطح2
string[,] ParentNode2 = new string[100, 2];
int countnew = 0;
while (Sdr1.Read())
{
ParentNode2[countnew, 0] = Sdr1.GetValue(Sdr1.GetOrdinal("id")).ToString();
ParentNode2[countnew++, 1] = Sdr1.GetValue(Sdr1.GetOrdinal("Name")).ToString();
}
Sdr1.Close();
for (int loop2 = 0; loop2 < countnew; loop2++)
{
TreeNode root2 = new TreeNode();
root2.Text = ParentNode2[loop2, 1];
root2.Target = "_blank";
root2.Value = ParentNode2[loop2, 0];
//root2.NavigateUrl = "Tree.aspx";

//سطح3
SqlCommand Module_SqlCmd = new SqlCommand("Select * from group_3 where group_2 =" + ParentNode2[loop2, 0], con);
SqlDataReader Module_Sdr = Module_SqlCmd.ExecuteReader();
while (Module_Sdr.Read())
{
TreeNode child = new TreeNode();
child.Text = Module_Sdr.GetValue(Module_Sdr.GetOrdinal("Name")).ToString();
child.Target = "_blank";
child.Value = Module_Sdr.GetValue(Module_Sdr.GetOrdinal("id")).ToString();
//child.NavigateUrl = "your_page_Url.aspx";
root2.ChildNodes.Add(child);
}
Module_Sdr.Close();
root.ChildNodes.Add(root2);
}
treeviwExample.Nodes.Add(root);
}
treeviwExample.CollapseAll();
con.Close();
}[/LEFT]

parvizwpf
یک شنبه 20 مرداد 1392, 19:04 عصر
این چیزا معمولا خروجی نمیخواد ورودی میخواد مثلا کنترلی از نوع عمون تری ویو و یا مقادیری که شاید بخواید طبق اون از بانک دیتا بخونید.

samira6446
دوشنبه 21 مرداد 1392, 13:33 عصر
سلام
میشه بیشتر توضیح بدید
برای کار من مقادیر ورودی خوندن از بانک چی میتونه باشه؟؟
یا یک مثال بزنید
مرسی

General-Xenon
دوشنبه 21 مرداد 1392, 15:54 عصر
سلام
میشه بیشتر توضیح بدید
برای کار من مقادیر ورودی خوندن از بانک چی میتونه باشه؟؟
یا یک مثال بزنید
مرسی
سلام کافی Treeview مورد نظرت رو پاس بدی به همین کلاسی که نوشتی .....
void fill_Tree(TreeView trv)
{
SqlConnection con = new SqlConnection(@"Data Source=Alireza-PC\Sql2008;Initial Catalog=DBSport;Integrated Security=True");
con.Open();
SqlCommand SqlCmd = new SqlCommand("Select * from mem_group", con);
SqlDataReader Sdr = SqlCmd.ExecuteReader();
SqlCmd.Dispose();

string[,] ParentNode = new string[100, 2];
int count = 0;
while (Sdr.Read())
{
ParentNode[count, 0] = Sdr.GetValue(Sdr.GetOrdinal("code")).ToString();
ParentNode[count++, 1] = Sdr.GetValue(Sdr.GetOrdinal("name")).ToString();
}
Sdr.Close();

for (int loop = 0; loop < count; loop++)
{
TreeNode root = new TreeNode();
root.Text = ParentNode[loop, 1];
root.Target = "_blank";
root.Value = ParentNode[loop, 0];
//root.NavigateUrl = "Tree.aspx";

SqlCommand SqlCmd2 = new SqlCommand("Select * from group_2 where group_code =" + ParentNode[loop, 0], con);
SqlDataReader Sdr1 = SqlCmd2.ExecuteReader();
SqlCmd2.Dispose();

//سطح2
string[,] ParentNode2 = new string[100, 2];
int countnew = 0;
while (Sdr1.Read())
{
ParentNode2[countnew, 0] = Sdr1.GetValue(Sdr1.GetOrdinal("id")).ToString();
ParentNode2[countnew++, 1] = Sdr1.GetValue(Sdr1.GetOrdinal("Name")).ToString();
}
Sdr1.Close();
for (int loop2 = 0; loop2 < countnew; loop2++)
{
TreeNode root2 = new TreeNode();
root2.Text = ParentNode2[loop2, 1];
root2.Target = "_blank";
root2.Value = ParentNode2[loop2, 0];
//root2.NavigateUrl = "Tree.aspx";

//سطح3
SqlCommand Module_SqlCmd = new SqlCommand("Select * from group_3 where group_2 =" + ParentNode2[loop2, 0], con);
SqlDataReader Module_Sdr = Module_SqlCmd.ExecuteReader();
while (Module_Sdr.Read())
{
TreeNode child = new TreeNode();
child.Text = Module_Sdr.GetValue(Module_Sdr.GetOrdinal("Name")).ToString();
child.Target = "_blank";
child.Value = Module_Sdr.GetValue(Module_Sdr.GetOrdinal("id")).ToString();
//child.NavigateUrl = "your_page_Url.aspx";
root2.ChildNodes.Add(child);
}
Module_Sdr.Close();
root.ChildNodes.Add(root2);
}
trv.Nodes.Add(root);
}
trv.CollapseAll();
con.Close();
}