Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 00:42 14.06.24 
Клубове/ Компютри и Интернет / .NET Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: TreeView [re: AiSiktiriks]
АвторГypy (Нерегистриран) 
Публикувано31.10.04 12:32  



При 30,000 нода както и да ги мислиш най-добрия вариант е да прихванеш expand event-a на нода и да заредиш неговите child nodes в ивент хендлъра. Тоест почваш само с руут нодес, и при всеки клик на "+" зареждаш децата.

Иначе наведнъж най-бързият начин е с ДатаСет и релации вътре в него - става само с едно куери.

private void GenerateTreeView()
{
OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Examples/Programming/SqlBinding/tree.mdb"));
dbCon.Open();

OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Links", dbCon);
DataSet ds = new DataSet();
adapter.Fill(ds);

ds.Relations.Add("NodeRelation", ds.Tables[0].Columns["id"], ds.Tables[0].Columns["parentId"]);

foreach(DataRow dbRow in ds.Tables[0].Rows)
{
if(dbRow.IsNull("parentId"))
{
RadTreeNode node = CreateNode(dbRow["Text"].ToString(), true);
RadTree1.AddNode(node);
RecursivelyPopulate(dbRow, node);
}
}
}

private void RecursivelyPopulate(DataRow dbRow, RadTreeNode node)
{
foreach (DataRow childRow in dbRow.GetChildRows("NodeRelation"))
{
RadTreeNode childNode = CreateNode(childRow["Text"].ToString(), true);
node.AddNode(childNode);
RecursivelyPopulate(childRow, childNode);
}
}

private RadTreeNode CreateNode(string text, bool expanded)
{
RadTreeNode node = new RadTreeNode(text);
node.Expanded = true;

return node;
}

private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
GenerateTreeView();
}
}



Цялата тема
ТемаАвторПубликувано
* TreeView AiSiktiriks   31.10.04 08:42
. * Re: TreeView Гypy   31.10.04 12:32
. * Re: TreeView AiSiktiriks   31.10.04 18:12
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.