GridView   zodpovězená otázka

VB.NET, ASP.NET WebForms

Dobrý den,

mám takový problém s GridView :-(. Nepochybně dělám něco blbě, nebo jsem nepochopil podstatu, ale potřebuju následující věc. Mám vytvořenou proceduru, která mi podbarví řádky GridView, pokud jeden ze sloupců je roven nějaké hodnotě. Toto volám při načtení stránky a vše funguje tak, jak bych si představoval. Problém nastává, že po provedení update řádku toto podbarvení zmizí a jakékoliv pokusy selhávají. Prostě potřebuji obarvit všechny již změněné řádky včetně toho nově změněného po jeho změně. OnRowUpdated mi nefunguje:

    Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As GridViewUpdatedEventArgs)

       ' Indicate whether the update operation succeeded.
       If e.Exception Is Nothing Then

          Response.Write("Row updated successfully.")
'	  barvy(GridView1.Rows.Count)
	For i as Integer = 0 to GridView1.Rows.Count - 1
	  GridView1.Rows(i).BackColor =Drawing.Color.MediumSeaGreen
	Next i

       Else

          e.ExceptionHandled = True
          Response.Write("An error occurred while attempting to update the row.")

       End If

    End Sub

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

Dejte sem kód,kterým nastavujete podbarvení v rámci Loadu stránky.Problém bude nejspíše v tom,že nemáte ošetřen postback.

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

Kód je níže. Problém ale je, že to podbarvení nemohu nastavit ani v rámci OnRowUpdated :-(. Ať nastavím, co nastavím, prostě se to nepodbarví... Díky za odpověď.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

...
...

	If Not IsPostBack Then
		barvy(GridView1.Rows.Count)
	End If

    End Sub

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

No v tomto scénáři se jedná o postback a ten tedy neprojde podmínkou v metodě Page_load a tak nedojde k podbarvení,ale použit standardní layout(css,skinfile,..)

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

No a jak mám tedy docílit mého cílu? Pokud načtu stránku, podbarvení proběhne, ale pokud udělám update řádku, zmizí a i když ho deklaruju "natvrdo", nic se nestane :-(.

Díky...

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

Page_Load je pěkná blbost, GridView nemusí být ještě naplněn.

Standardně se to dělá v události GridView_RowDataBound, která nastane těsné poté, co jsou do řádku doplněny hodnoty. Anebo RowCreated.

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

To je přesně to, co jsem potřeboval! Už to funguje přesně, jak potřebuju. Velice Vám děkuji!

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