číslo řádku GridView z TemplatedField   zodpovězená otázka

VB.NET, ASP.NET WebForms

Pro zachycení stisknutí tlačítka v GridView používám

Protected Sub GridView1_Command(ByVal obj As Object, ByVal E As GridViewCommandEventArgs)

Tlačítka mají své E.CommandName, číslo řádku nese E.CommandArgument a podle toho se pro tento řádek provede určitý kód.

Pokud však tlačítko není ButtonField, nýbrž je TemplateField, pak nejsem schopen v uvedené proceduře odchytit číslo řádku - E.CommandArgument je prázdný. V DataGridu to jde - jde to nějak i v GridView?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano jde.

1] pokud se vam jedna pouze o cislo radku tak si ho muzete vratit pres rowIndex

2] do TemplateField date treba button nebo linkbutton nastavite commandName. Pokud davate radkum vlastni ID z databaze treba tak nez je davat do CommandArgument je lepsi dat je do gridview datakeys a po kliknututi si vratit hodnotu z datakeys.

Protected Sub GridView1_Command(ByVal sender As Object, ByVal E As GridViewCommandEventArgs) handles GridView1.RowCommand

    if e.CommandName = "muj_command" then
       // nejake zpracovani
    end if

End sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

2) Vřele doporučuji na DataKeys moc nespoléhat. Pokud máte zapnutý ViewState, tak je to spolehlivé a funguje to, ale u GridView ho hodně lidí vypíná. V takovém případě hrozí docela velké nebezpečí - vytáhnete si ze stránky 10 položek, GridView si zapamatuje seznam jejich klíčů popořadě. A nyní kliknete na tlačítko smazat u prvního záznamu - ale pozor, GridView neodesílá hodnotu klíče, ale číslo řádku. Pokud se mezi načtením stránky a kliknutím na tlačítko databáze změnila, máte docela vážný problém a smaže se jiný řádek! Tohle je docela známá chyba v GridView.

Pokud už používáte TemplateField, pak si jednoduše do CommandAgrument bindněte ID záznamu a máte po problému.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky vám oběma.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback