[ KizaBG @ 31.10.2009. 15:04 ] @
Da li je neko do sada radio nesto kao ovo:

Windows forma (radjeno u C#) ima TreeView kontrolu.

Moj korisnik hoce da ima mogucnost, da elemente na kontroli strelicama pomera gore dole, i da ih tako zapamti.

Ono sto je dodatni problem, je sto svaki element, moze da ima svoj pod-element.

Primer.

1. Proizvodnja
2. Marketing
3. Prodaja
3.1 maloprodaja
3.2 veleprodaja
3.3 inostrano
4. Knjigovodstvo
4.1 domace
4.2 inostrano
5. Transport.

znaci, kako omoguciti korisniku da Knjigovodstvo koje je na mestu 4, strelicom pomeri na gore, na mesto 3 ?
isto tako, u okviru glavnog noda, treba omoguciti promene na gore dole.
pa tako, u nodu 3. Prodaja, treba omoguciti da 3.2 veleprodaja, predje na mesto 3.1maloprodaja, a da se maloprodaja spusti na mesto ispod 3.2 ?

takodjer, kako sve to poslati i smestiti u tabelu ? Znaci, treba napraviti kod, koji ce 'protrcati' sve nodove i podnodove, i pretostavljam smestiti u XML i poslati SQL Serveru ?

ja sam za pocetak, u tabeli OrganizacioneCeline, dodao jedno polje koje se zove "RedniBroj" pa tako da storovana procedura prikazuje polja po rednom broju koji neka OrganizacionaCelina dobije.


pozdrav i 10 x hvala unapred.


[ KizaBG @ 01.11.2009. 13:27 ] @
Posle 2 dana tumaranja po internetu, i isprobavanja bezbroj primera, evo konacnog resenja .. mozda nekome zatreba pa da mu ustedim vreme

Pomeranje noda na gore

private void btnGore_Click(object sender, EventArgs e)
{
TreeNode node = new TreeNode();
node = treeViewAutomobili.SelectedNode;

TreeNode PrevNode = node.PrevNode;
if (PrevNode != null)
{
TreeNode NewNode = (TreeNode)node.Clone();
if (node.Parent == null)
{
treeViewAutomobili.Nodes.Insert(PrevNode.Index, NewNode);
}
else
{
node.Parent.Nodes.Insert(PrevNode.Index, NewNode);
}
node.Remove();
treeViewAutomobili.SelectedNode = NewNode;
}
}

Pomeranje noda na dole

private void btnDole_Click(object sender, EventArgs e)
{
TreeNode node = treeViewAutomobili.SelectedNode;
TreeNode NextNode = node.NextNode;
if (NextNode != null)
{

TreeNode NewNode = (TreeNode)node.Clone();
if (node.Parent == null)
{
treeViewOrganizacionaCelinaPripadaOrganizacionjCelini.Nodes.Insert(NextNode.Index + 1, NewNode);
}
else
{
node.Parent.Nodes.Insert(NextNode.Index + 1, NewNode);
}
node.Remove();
treeViewAutomobili.SelectedNode = NewNode;
}

}