کار با TreeNodeBinding در کنترل TreeView ASP.NET

من کار بر روی من امیدوارم که به زودی منتشر خواهد شد CodePlex پروژه ای که کمی یکپارچه زیبا از قسمت های وب به یکدیگر از طریق اتصال به شبکه ارائه کننده / مصرف کننده به منظور بررسی یک سایت شیرپوینت تحت پوشش، فراهم می کند.  (این امر قطعا انجام شده قبل از, اما این یک پروژه آموزشی تا آنجا که هر چیز دیگری است).  این به معنای جایگزینی برای ویندوز اکسپلورر ببینید شیرپوینت 2010 کتابخانه های اسناد.

کد تماس بازگشتی معمول پایین SPWeb و SPLists های از با توجه به نقطه شروع مورد نظر منتقل می کند.  شی که که تراورس ایجاد یک رشته XML را که به نظر می رسد چیزی شبیه به این:

<آدرس sitecollection =’HTTP://demo2010a:9090′>
 
<وب سایت
     عنوان = "گودال ماسهبازی" سلام جهان 
     الگو = 'سایت برای تیم ها را به سرعت سازماندهی, نویسنده, و به اشتراک گذاری اطلاعات, BLAH BLAH BLAH '>

     <فهرست
        BCC_Health_Services_FAQs عنوان = '’
        الگو = 'CustomList’
       
listid =’HTTP://demo2010a:9090/helloworldsandbox[سهم من]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</فهرست>

     <فهرست
        'BCC_Notifications عنوان = 
        الگو = 'CustomList' 
        listid =’
HTTP://demo2010a:9090/helloworldsandbox[سهم من]5a5a13d1-877C-41c0-9063-b9612be80d5e’>
     </فهرست>

  </وب سایت>

</sitecollection>

من انتظار دارم برای پاک کردن که XML قبل از اینکه همه چیز گفته و انجام.

من می خواهم در نهایت برای کسب این اطلاعات و تبدیل به یک کنترل TreeView.  دقیقا خاکی چیزهای بسیار مخربی.

چالش من در اینجا در زمان اتصال نمای درختی به یک کنترل منبع داده های XML به جای دستی ساخت تا treenodes من به عنوان درخت من گذشتن.  من این تا حدی به خاطر من عمدا ساخت چیز سخت تر بر روی خودم (این یک پروژه آموزشی بعد از همه است) و تا حدودی به دلیل این مفهوم مبهمی است که ایجاد گره های درخت به عنوان درخت ایده پیشنهاد خوبی نیست برای مدت طولانی من گذشتن.

مشکل با این روش این است که کنترل TreeView در مورد ویژگی های خوب بر روی گره های جالب مانند "فهرست" یا "وب" نمی دانم پس از آن این خروجی را به طور پیش فرض را نشان می دهد:

 

image

این مفید نیست.  این است که در آن کلاس TreeNodeBinding کمک می کند.  من نمی توانم این کنترل TreeView به بگویید چگونه باید تفسیر XML استفاده کنید.  در اینجا یک مثال:

tnb = جدید TreeNodeBinding();
tnb.DataMember = "فهرست"; // این برچسب XML برای سایت.
tnb.TargetField = "listid;
tnb.ValueField = "عنوان";
tnb.ToolTipField = "الگو";

این الزام آور می گوید به TreeView و که زمانی که آن را میبیند <فهرست> گره در XML, درخواست اتصالات برای TargetField را, ValueField و ToolTipField.  در ماه مه برنامه, این نقشه به شرح زیر است:

  • TargetField: هنگامی که کسی کلیک بر روی یک مقدار گره, این همان چیزی است که شما برای SelectedNode.Value دریافت کنید.  این است که نباید با اشتباه ...
  • ValueField: این همان چیزی است که شما می خواهید بوشهر به کاربر نمایش داده می.
  • ToolTipField: ارزش از XML است که شما به عنوان سازی tooltip.

اضافه کردن که TreeNodebinding به DataBindings نمای درختی است و شما می توانید خروجی شبیه به این:

 

image

من بیشتر در مورد این همه که من بر روی این پروژه ادامه و در نهایت از این در Codeplex.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

3 دیدگاه در "کار با TreeNodeBinding در کنترل TreeView ASP.NET

  1. اشتراک ها: Tweets that mention Working With TreeNodeBinding in the ASP.NET Treeview Control « Paul Galvin's SharePoint Space -- Topsy.com

  2. Holger

    سلام پل,

    I just checked that myself. It worked as far as you described that even if I don’t get that information from your site (what a pity :-)).
    The point I am interested in is, I tried to make the structure lazy loading with the PopulateOnDemand property. Otherwise the treeview load the complete structure in a whole which I would like to avoid. This property PopulateOnDemand seems not to have any effect.

    Also the treeview does not save any expand/ collapse state information.

    Did you solve these issues?

    با احترام

    Holger

    پاسخ

پاسخ

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *