NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Mini
Člen
Avatar
Mini:14.12.2015 12:15

Zdravím,
Prosím vás potřeboval bych pomoct.
Vypisuju z databáze data, zobrazuju v tabulce název záznamu z DB, pak dvě tlačítka, jedno na editování a druhy na smazáni záznamu, nic jiného ta moje tabulka neobsahuje.
Můj problém je že, ja přímo v kódu vytvářím ty řádky tabulky, a když kliknu na tlačítko smazat tak se mi záznam smaže až po kliknutí po druhé(tedy po dalším refreshu stránky). Nejspíš bude problém v tom že znova a znova vytvářím danou tabulku, a udělájí se asi nějaké zmatky v tech událostí.

V PageLoad mám ve funkci: jde pouze o vytáhnutí dat z DB, důležité je tu jen vytvoření toho buttonku a přidání události.

foreach (Dictionary<string, string> item in selectResult)
                {
                    //tělo tabulky
                    TableRow tr2 = new TableRow();
                    TableCell tc = new TableCell();
                    TableCell tc2 = new TableCell();
                    TableCell tc3 = new TableCell();
                    tc.Text = Localization.getText(int.Parse(item["title"]));
                    Button edit = new Button();
                    edit.Attributes.Add("class", "btn btn-primary");
                    edit.ID = "edit_"+item["ID"].ToString();
                    edit.Click += (object send, EventArgs args) => editPage(send, args, int.Parse(item["ID"]));
                    Button delete = new Button();
                    delete.Attributes.Add("class", "btn btn-danger");
                    edit.ID = "delete_" + item["ID"].ToString();
                    delete.Click += (object send, EventArgs args) => deletePage(send, args, int.Parse(item["ID"]));
                    tc2.Controls.Add(edit);
                    tc3.Controls.Add(delete);
                    tr2.Controls.Add(tc);
                    tr2.Controls.Add(tc2);
                    tr2.Controls.Add(tc3);
                    tr2.ID = item["ID"].ToString();
                    controls.Add(tr2);
                    PagesTable.Controls.Add(tr2);
                }

No a zde metoda na obsluhy té události na Delete.

protected void deletePage(Object sender, EventArgs e, int ID)
       {
           Manager.deletePage(ID); //smaže záznam
       }

Chtěl jsem se zeptat jak udělat to, aby proste kdyz kliknu na tlačítko, tak aby se vymazal a aby se to hned projevilo. Protože takle se to projeví jen když dvakrát. Mohl bych to řešit pomoci JS ale chci to vyřešit právě jen pomocí ASP.

Díky moc

Odpovědět
14.12.2015 12:15
Jste dobří jen v tom, co vás baví.
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Mini
vajkuba1234:14.12.2015 12:48

Nevím jak se to dělá ve Web Forms, ale v MVC se používá metoda RedirectToAction. Tak zkus pohledat něco podobného jako "asp.net webforms redirect after post". :)

Nahoru Odpovědět
14.12.2015 12:48
No hope, no future, JUST WAR!
Avatar
Odpovídá na Mini
Michal Štěpánek:14.12.2015 13:29

Zkus tam přidat "redirect"

protected void deletePage(Object sender, EventArgs e, int ID)
       {
           Manager.deletePage(ID); //smaže záznam
           Response.Redirect("cesta ke stránce s výpisem");
       }
Nahoru Odpovědět
14.12.2015 13:29
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Mini
Člen
Avatar
Odpovídá na Michal Štěpánek
Mini:14.12.2015 13:34

Ten redirect jako funguje, taky mě to napadlo, ale nezpůsobuje to náhodou dvojtej refresh stránky?
Nevím to jistě, jen se ptám.
Každopádně díky :-)

Nahoru Odpovědět
14.12.2015 13:34
Jste dobří jen v tom, co vás baví.
Avatar
Mini
Člen
Avatar
Mini:14.12.2015 14:27

A hlavně já tam mám filtr na tu tabulku, a měním tma jeden dropdown(comboBox), a když tam redirect tak se mi samožrejmě dá do defaultního nastavení

Nahoru Odpovědět
14.12.2015 14:27
Jste dobří jen v tom, co vás baví.
Avatar
Odpovídá na Mini
Michal Štěpánek:14.12.2015 15:52

Při načítání stránky se dá nastavit, co má být v ComboBoxu vybráno...
Dvojitej refresh to skutečně nezpůsobí...

Nahoru Odpovědět
14.12.2015 15:52
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Mini
Člen
Avatar
Mini:17.12.2015 8:11

Jo to dá no, ale jak zjistím co on měl v tom ComboBoxu před refreshem stránky vybráno.
Jak mu to dám vědět?
Respektive to mužu poslat v GETU ale chtěl bych aby to bylo skryty nějak. Proto když použiju nějakej ten refresh stránky nešlo by aby s posílal i stav toho comboBoxu?

Díky moc

Nahoru Odpovědět
17.12.2015 8:11
Jste dobří jen v tom, co vás baví.
Avatar
Odpovídá na Mini
Michal Štěpánek:30.12.2015 13:37

Zkus se podívat na ViewState

Nahoru Odpovědět
30.12.2015 13:37
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
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 8 zpráv z 8.