Diskuze: aktualizace DGV

C# .NET .NET (C# a Visual Basic) aktualizace DGV American English version English version

Avatar
martin.vip
Člen
Avatar
martin.vip:

Zdravím pánové... jak řešíte aktualizaci DGV po té co do něj uložíte, opravíte nebo smažete data? Myslím tím že na jednom formu mám DGV a dalším formem přidávám data přes InsertQuery. Jak aktualizujete po uložení dat, aby se okamžitě zobrazila v prvním formu.

 
Odpovědět 17.3.2015 20:31
Avatar
Nahoru Odpovědět 20.3.2015 9:04
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
martin.vip
Člen
Avatar
martin.vip:

Michale, myslíš reagovat na zavření druhého formu události znovu načtením dat do tabulky v prvním formu?
Šlo mi spíš o to jak to lidi řeší. Jestli někdo neobjevil nějakou vlastnost nebo funkci která to bude řešit nejlíp :-)

 
Nahoru Odpovědět 20.3.2015 18:52
Avatar
Odpovídá na martin.vip
Michal Štěpánek:

No zatím se C# teprve učím, dosud jsem aplikace dělal ve VB.NET a tam je toto o mnoho jednodušší, protože instanci formuláře nemusíš vytvářet, jen uděláš Form.Show() a v každém formu můžeš v podstatě cokoliv (řečeno s nadsázkou) měnit na všech ostatních formech.
Nicméně myslím si, že by se to mělo řešit způsobem popsaným v odkazu výše, tzn. předat referenci (na ten původní form) do toho přidávacího/e­ditovacího formu a pak "spustit" načtení dat do DGV v tom prvním formu pomocí nějaké "public void"...

Editováno 20.3.2015 21:10
Nahoru Odpovědět 20.3.2015 21:08
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
martin.vip
Člen
Avatar
martin.vip:

no to možná jo, jen jsem myslel jestli třeba někdo neobjevil nějakou knihovnu která by práci s DGV ulehčila a dala tomu trošku logiky.

 
Nahoru Odpovědět 21.3.2015 13:44
Avatar
Michal Štěpánek:

Nemyslím si, že práce s DGV by mohla být ještě jednodušší...

Nahoru Odpovědět 21.3.2015 15:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Gramli
Redaktor
Avatar
Odpovídá na martin.vip
Gramli:

ja pracuju s DGV tak, ze mu predam datasource.
Pro tvuj pripad me napadlo toto:

//Form1
public partial class Form1 : Form
    {
        Form2 addForm;
        public Form1()
        {
          addForm = new Form2(this);
        }
     }

public partial class Form2 : Form
    {
        public MyTable dataSourceTable;
        private Form1 form1;
        public Form2(Form 1 form)
        {
          data = new MyTable();
          form1 = form;
        }

        public void UpdateDGV()//pokazde kdyz zmenis my table zavolas tohle
        {
          form1.dgv.DataSource = this.dataSourceTable;
         }
     }

class MyTable : DataTable // s touhle tridou pak muzes pracovat jako s tabulkou
    {
        //tady budes mit metody pro pro praci s daty

     }

Vsechny metody pro praci s daty mas ve Tride MyTable. Volas je z tridy Form2. Jakmile chces potvrdit zmeny a zobrazit je v dgv, zavolas UpdateDGV. Neni to nic svetoborneho, ale takhle bych to nejspis resil ja.

Editováno 21.3.2015 15:46
Nahoru Odpovědět 21.3.2015 15:46
Kdo to říká ten to je...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.