• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

TREE view

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
سلام
میخوام tree view رو به db وصل کنم در net2. !!!
چطوری این کار رو انجام بدم؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
فكر كنم مستقيم نميشه - ديتاسورسش بايد xml باشه. يعني يا بايد از ديتابيست خروجي xml بگيري يا اينكه با كد از ديتابيس بخوني و نود ها رو يكي يكي بسازي.
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
چطوری این کار رو انجام بدم یک تیکه کد نمونه بهم نشون میدین؟؟؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
كدوم يكي ؟
xml يا روش دوم؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
بهترين مثال تو خود msdn‌ هست - اگر لوكال نصب شده دنبال Walkthrough: Displaying Hierarchical Data in a TreeView Control بگرد.
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
41
محل سکونت
نصف جهان
شما میتوانید گزارش مورد نظر خود را بگیرید و با استفاده از دیتا ست و کلاسهای XML به فایل XML تبدیل کنید ، سپس XML تولید شده را به عنوان دیتا سورس کنترل حود قرار دهید.

استفاده از دیتاست ها توصیه نمیشود مگر اینکه تعداد رکوردها بسیار کم باشد.
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
41
محل سکونت
نصف جهان
راستی ، البته بنده توانستم که TreeView را به دیتابیس وصل کنم .

اینگونه :

کد:
protected void Page_Load(object sender, EventArgs e)
    {
        if (!User.Identity.IsAuthenticated || !User.IsInRole("admin"))
            Panel1.Visible = false;

        if (Request.QueryString["StartID"] != null)
        {
            PopulateStartLevel(Request.QueryString["StartID"]);
            return;
        }

        if (!IsPostBack)
            PopulateStartLevel(User.Identity.Name);
//        PopulateStartLevel("1");

        //Response.Write(DatabaseWorker.GetSubChilds("1") +"<br>");
        DatabaseWorker.LogRegister(User.Identity.Name, "View Tree in " + DateTime.Now);

    }

    protected void PopulateStartLevel(string StartNodeID)
    {
        SqlConnection Cnn = new SqlConnection(@"Data Source=BROOKLYN;Initial Catalog=AzPaygah;Integrated Security=True");

        string query = "select UserName,FirstName,Family,(select count(*) FROM TUser WHERE ParentID=sc.UserName) AS childnodecount " +
            "FROM TUser as sc where UserName = @UserName";// parentID =@ParentID";


        SqlCommand cmd = new SqlCommand(query, Cnn);

        cmd.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = StartNodeID;

        SqlDataAdapter objDa = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        objDa.Fill(dt);

        PopulateNodes(dt, MainTree.Nodes);

    }

    protected void PopulateNodes(DataTable dt, TreeNodeCollection nodes)
    {

        foreach (DataRow dr in dt.Rows)
        {
            TreeNode tn = new TreeNode();
            tn.Text = dr["FirstName"].ToString() + " "+ dr["Family"].ToString();
            tn.Value = dr["UserName"].ToString();

            nodes.Add(tn);

            tn.PopulateOnDemand = (Convert.ToInt32(dr["childnodecount"]) > 0);
        }
    }

    protected void MainTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {
        PopulateSubLevel(e.Node.Value, e.Node);
    }

    protected void PopulateSubLevel(string ParentID, TreeNode ParentNode)
    {
        SqlConnection Cnn = new SqlConnection(@"Data Source=BROOKLYN;Initial Catalog=AzPaygah;Integrated Security=True");
        string query = "select UserName,FirstName,Family, (select count(*) FROM TUser WHERE ParentID=sc.UserName) AS childnodecount " +
            "FROM TUser as sc where parentID ='" + ParentID + "'";


        SqlCommand objCommand = new SqlCommand(query, Cnn);


        SqlDataAdapter objDa = new SqlDataAdapter(objCommand);
        DataTable dt = new DataTable("dt");
        objDa.Fill(dt);
        PopulateNodes(dt, ParentNode.ChildNodes);

    }
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
کسی یه راه بهتر رو سریع تر و آماده تر نداره؟
من با سالی 1 دفعه گذرم گیر میکنه به tree view حالا هم این طوری شده یه کمکی بکنین این راه بیفته
اقای end of csharp من با data set نمیتونم کار کنم چون رکوردهام خیلی زیادن دیدم که تذکر هم داده بودی
اگه میشد انجام میدادم زود تر اونم با لایه ولی نمیشه . یکی بیاد مردونگی کنه یه چیز درست و حسابی اماده که بشه سریع بندازم تو پروژم بزاره اینجا خدا خیرتون بده
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
41
محل سکونت
نصف جهان
آخه من که نمی دونم دقیقا میخوای چیکار کنی چطور راهنمایی تون کنم ؟؟؟

میتوانین با یک SqldataCommand و یک sqldataReader ، به صورت دستی (منظورم غیر از استفاده از توابع دیتاست) کی فایل XML ایجاد کرده و داهل آن بنویسید ، سپس فایل را بعنوان دیتا سورس treeview استفاده کنین
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
من تا حالا انجام ندادم tree view رو
یکی یه کمکی بکنه!!!!
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
41
محل سکونت
نصف جهان
ای بابا

شما خودتو بذار جای کسی که میخوا جو.اب بده
هی میگی کمک کنین ، کمک کنین در حالی که اصلا نه مشکل رو درست شرح میدین و نه به توصیه ها گوش میکنین

این هم کمک نهایی : اجی مجی لاترجی ... درست شد .
 
بالا