Avatar
Merry
Člen
Avatar
Merry:

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 Merry
vajkuba1234:

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! For world peace Israel must be DESTROYED!
Avatar
Odpovídá na Merry
Michal Štěpánek:

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
Merry
Člen
Avatar
Odpovídá na Michal Štěpánek
Merry:

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
Merry
Člen
Avatar
Merry:

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 Merry
Michal Štěpánek:

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
Merry
Člen
Avatar
Merry:

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 Merry
Michal Štěpánek:

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.