Toon posts:

[asp.net] postback probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb een probleem met het volgende:

ik heb een datagrid met data uit een database.
Vervolgens wil ik de data kunnen editten met behulp van de standaard zaken in de datagrid.
Ik heb een editcolumn met de gebruikelijke knoppen enzo.

Nu had ik een aantal problemen hiermee en ben ik gaan zoeken (hier en google).
Daar had ik gevonden dat je bovenaan op de page_load een functie moet maken die controleert op een postback, zodra ik dit geimplemeteerd heb en op de edit knop druk.
Verdwijnt mijn datagrid.

Ik heb onder de edit, cancel en update een sql command gezet die de tekst wegschrijft naar een database. (een response.write is niet altijd zichtbaar, dit is wel te achterhalen of hij uberhaupt in de functie komt.)

Op het moment dat ik de postback controle uitvoer gaan mijn editcommand (en andere) niet meer af.

Hoe komt dit?

ik wordt onderhand gek van dit probleem, de datagrid edit solution is voor mij zeer handig ik krijg het alleen niet werkend.

p.s. ik heb de enableviewstate ook op true staan. moet ik hier verder nog iets mee doen?!

Hoe kan het dat de triggers niet af gaan?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:00
Wat staat er in je if( !IsPostback ) ?

https://fgheysels.github.io/


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Maak je je Datagrid dynamisch aan of al in design-time ?
Is ViewStateEnabled true voor zowel de datagrid control en je aspx pagina?

Verwijderd

Topicstarter
dit is een gedeelte van mijn code

enableviewstate is enabled voor zowel pagina als voor datagrid

code:
1
2
3
        If Not IsPostBack Then
            binddata()
        End If


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Sub binddata()
        functions.Path = Request.PhysicalApplicationPath
        iData = New DataAdapter("Server=" & functions.CRMServer & ";user id=" & functions.user & ";password=" & functions.pass & ";database= " & functions.source)

        lcalcnr = Request.QueryString("crId")
        lblCalc.Text = lcalcnr
        lcalcid = CType(Request.QueryString("cId"), Integer)

        lsql = ""
        lsql &= "SELECT"
        lsql &= " numbe from calc"
        lsql &= " WHERE calc_id = " & lcalcid

        lds = iData.GetDataSet(lsql)

        If lds Is Nothing Then
            lblError2.Text = "Geen Calculaties gevonden!"
            lblError2.Visible = True
        Else
            dgCalcedit.DataSource = lds.Tables(0).DefaultView
            dgCalcedit.DataBind()
        End If
End sub


code:
1
2
3
4
5
6
7
8
    Public Sub dgCalcedit_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgCalcedit.EditCommand


        dgCalcedit.DataSource = lds.Tables(0).DefaultView
        dgCalcedit.EditItemIndex = e.Item.ItemIndex
        binddata()

    End Sub

[ Voor 27% gewijzigd door Verwijderd op 21-12-2004 09:56 ]


Verwijderd

Als je die is postBack doet dan moet je wel je datagrid daar in uitvoeren he. je doet een bindgrid() maar waar toon je je datagrid? als je dat nu doet in bindgrid() dan is er niets mis;

Verwijderd

Topicstarter
Sorry, even voor de duidelijkheid. het tweede stukje code is de binddata methode.

De eerste keer dat ik het scherm open, krijg ik dus wel een datagrid. maar als ik dan op de edit link druk verdwijnt de datagrid

[ Voor 45% gewijzigd door Verwijderd op 21-12-2004 09:13 ]


Verwijderd

Verwijderd schreef op dinsdag 21 december 2004 @ 09:12:
Sorry, even voor de duidelijkheid. het tweede stukje code is de binddata methode.

De eerste keer dat ik het scherm open, krijg ik dus wel een datagrid. maar als ik dan op de edit link druk verdwijnt de datagrid
Volgens mij komt dat omdat je bij de postback de functie binddata niet uitvoert...

Verwijderd

Topicstarter
voor de duidelijkheid:

De eerste keer dat ik dus het scherm open.
Krijg ik dus een datagrid te zien met de data. Dat betekent dus dat er geen postback is geweest en dat de functie binddata uitgevoerd wordt.

Vervolgens druk ik op de knop edit.
ik heb overal gelezen dat dan de binddata niet aangeroepen hoeft te worden (vandaar de ispostback check) Dus ik neem aan dat de functie dan niet wordt aangeroepen en de trigger van editcommand afgaat.
hierin wordt dus de datasource van de datagrid gezet. vervolgens de edit item index en wordt de datagrid weer gebind.

maar het hele probleem is dus dat die edit command niet afgaat op het moment dat ik de postback check uitvoer.

Als ik de postback niet uitvoer dat krijg ik wel mijn "update" en "cancel" knopjes. maar dan gaan die commands ook niet af

Verwijderd

Topicstarter
Voor mensen die geintresseerd zijn lag de oplossing bij mij in een volkomen onverwachte hoek!
deze property was de boosdoener:
code:
1
AutoEventWireup="false"


Deze moet echt op true staan.

Vraag me niet waarom maar nu werkt het!
Pagina: 1