Nacteni z XML do formu podle attr id – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nacteni z XML do formu podle attr id – .NET – Fórum – Programujte.comNacteni z XML do formu podle attr id – .NET – Fórum – Programujte.com

 

JiriVavru0
Návštěvník
22. 5. 2009   #1
-
0
-

Zdravím,
Mám jeden dotaz..V listview si zobrazuji do sloupců nacitana data z jednotlivych nodes v XML.
Chtěl bych nějak vyřešit to, abych vybrani jednoho řádku, kliknul na btn_editovat a otevřel se mi form, do kterého by se načetli údaje z nodu s odpovídajícím id.

Zkoušel jsem zatím něco takovéhoto:

Volám:
Na pozici 0 je uloženo vždy id

  private void btn_upravit_Click(object sender, EventArgs e)

{
Edit_contact editovat_kontakt = new Edit_contact(listView_kontakty.FocusedItem.SubItems[0].Text);
editovat_kontakt.Show();
}


A ve formu to mám takto:
        private void Edit_contact_Load(object sender, EventArgs e)

{
LoadXML();
}

private void LoadXML()
{
//Vytvorime novou instanci
XmlDocument doc = new XmlDocument();

//Nahrajem
doc.Load(Application.StartupPath + "\\seznam.xml");


XmlNode t = doc.SelectSingleNode("/seznam/zaznam[@id='"+ _id + "']");

foreach (XmlNode zaznam in t.ChildNodes)
{
if (zaznam.Name.Equals("foto"))
textBox_vl_foto.Text = zaznam.InnerText;

if (zaznam.Name.Equals("jmeno"))
{
_jmeno = zaznam.InnerText;
textBox_vl_jmeno.Text = _jmeno;
}

if (zaznam.Name.Equals("prijmeni"))
{
_prijmeni = zaznam.InnerText;
textBox_vl_prijmeni.Text = _prijmeni;
}

if (zaznam.Name.Equals("telefon"))
textBox_vl_telefon.Text = zaznam.InnerText;


if (zaznam.Name.Equals("skupina"))
_skupina = zaznam.InnerText;
}
}


Nejraději bych dal tu metodu LoadXML(); do samostatné třídy ale bohužel nevím, jak bych tam vyřešil návratové hodnoty pro txt_boxy, takže je to zatím vše v jednom formu, až na jeho volání s parametrem.

Tuší někdo, co dělám špatně?

Díky za každou radu.

Nahlásit jako SPAM
IP: 92.62.224.–
dannyk0
Věrný člen
23. 5. 2009   #2
-
0
-

Bud si to muzes nacist nekam bokem do pameti a pak si nacitat data z pameti.Druhym zpusobem je, ze tomu nove oteviranemu formu predas id nodu, a pak si bud xpathem (pokud si v xml udrzujes i id) najdes dany nod nebo si cyklem projedes vsechny nody a az naleznes spravne id, tak si ho prectes a nastavis si jednotlive controly.
Pokud bys ten kod pro XML chtel dat bokem do samostatne tridy, tak by sis jako navratovy typ mohl dat XMLNodeList a ten by mel jit pouzit na property Datasource u listview.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 45 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý