valsil Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 Hei Jeg prøver meg igjen jeg... HTML kode <asp:datagrid id="dgConstants" style="Z-INDEX: 103; LEFT: 40px; POSITION: absolute; TOP: 224px" runat="server" Width="840px" Height="280px" OnCancelCommand="dgConstants_Cancel" OnUpdateCommand="dgConstants_Update" OnEditCommand="dgConstants_Edit"> <Columns> <asp:EditCommandColumn ButtonType="PushButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn> <asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="ID"></asp:BoundColumn> </Columns> </asp:datagrid> Binder data til datagriden slik: dgConstants.AutoGenerateColumns = False ' Response.Write(TabConstants.Rows.Count) i = TabConstants.Rows.Count Dim bc As BoundColumn For Each col As DataColumn In TabConstants.Columns bc = New BoundColumn bc.HeaderText = col.ColumnName bc.DataField = col.ColumnName Me.dgConstants.Columns.Add(bc) Next Me.dgConstants.Visible = True Dim ds As New DataSet ds = New DataSet 'creating a dataset ds.Tables.Add(TabConstants) 'adding the table to dataset dgConstants.DataSource = ds 'binding the table to datagrid dgConstants.DataBind() dgConstants.Columns(1).Visible = False dgConstants.Columns(2).Visible = False dgConstants.Columns(4).Visible = False Jeg ønsker å editere rader så derfor benytter jeg meg av EditCommandColumn med noen funksjoner som vist under: Sub dgConstants_Edit(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) dgConstants.EditItemIndex = e.Item.ItemIndex Dim columnValue As Integer testBind() End Sub Sub dgConstants_Cancel(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) dgConstants.EditItemIndex = -1 testBind() End Sub Sub dgConstants_Update(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Dim i As Integer Dim columnValue As String 'HENTER UT GALT ANTALL CELLER columnValue = e.Item.Cells.Count 'HENTER UT RETT KOLONNE Dim itemIndx As Integer = e.Item.ItemIndex 'KLARER IKKE HENTE UT VERDIER FRA CELLENE... Dim itemtext1 As String = dgConstants.Items(itemIndx).Cells(1).Text Dim itemtext2 As String = dgConstants.Items(itemIndx).Cells(2).Text End Sub Kan noen fortelle meg hvorfor jeg ikke får tak i cellene i valgt rad? Silje Lenke til kommentar
Kirikiri Skrevet 12. oktober 2004 Del Skrevet 12. oktober 2004 Sjekk om de kolonnene den ikke klarer å hente ut, er de som du har satt til visible=false. I så fall må du gjøre en egen bind for datagrid_EditItem, der du ikke skjuler disse feltene før en update. Kolonner og innholdet som er satt til visible=false "eksisterer" ikke for datagrid'en, dessverre. Tips: Legg informasjonen i de usynlige kolonnene i enten labels eller tekstbokser som du setter til 1 px bredde. Da kan du hente ut dataene, uten at de egentlig synes. Dessverre så vil du da få rare striper i datagriden din. FOr å gjøre om på de, så lager du 3 ekstra css-oppføringer. En viser kun høyre cellekant, en viser ingen cellesidekanter, og en viser kun venstre sidekant. I onItemDataBound gjør du en sjekk på om du er i editeringsmodus, og setter css-atributtet til respektive kolonner. Mulig det finnes en mindre knotete måte å gjøre det på, men denne brute-force-metoden skal faktisk fungere. Kirikiri Lenke til kommentar
valsil Skrevet 12. oktober 2004 Forfatter Del Skrevet 12. oktober 2004 Sjekk om de kolonnene den ikke klarer å hente ut, er de som du har satt til visible=false.I så fall må du gjøre en egen bind for datagrid_EditItem, der du ikke skjuler disse feltene før en update. Kolonner og innholdet som er satt til visible=false "eksisterer" ikke for datagrid'en, dessverre. Tips: Legg informasjonen i de usynlige kolonnene i enten labels eller tekstbokser som du setter til 1 px bredde. Da kan du hente ut dataene, uten at de egentlig synes. Dessverre så vil du da få rare striper i datagriden din. FOr å gjøre om på de, så lager du 3 ekstra css-oppføringer. En viser kun høyre cellekant, en viser ingen cellesidekanter, og en viser kun venstre sidekant. I onItemDataBound gjør du en sjekk på om du er i editeringsmodus, og setter css-atributtet til respektive kolonner. Mulig det finnes en mindre knotete måte å gjøre det på, men denne brute-force-metoden skal faktisk fungere. Kirikiri Hei Det har ikke noe med de kolonnene jeg setter til visable = false. Det er faktisk kun disse jeg får tak i update funksjonen pga disse er definert i HTML koden. Problemet er at jeg ikke får tak i de kolonner som jeg oppretter dynamisk i koden. Lenke til kommentar
Kirikiri Skrevet 12. oktober 2004 Del Skrevet 12. oktober 2004 Det er mulig du må gjøre en sjekk på if page.IsPostback then '- ikke gjør noe else BindDatagrid end if Eller om det er omvendt. Mest sannsynlig så prøver du å oppdatere fra en grid som ikke er i edit-modus, eller noe sånn. Sjekk disse to postene fra www.asp.net om de kan hjelpe deg videre: http://www.asp.net/Forums/ShowPost.aspx?ta...=1&PostID=57849 og http://www.asp.net/Forums/ShowPost.aspx?ta...=1&PostID=97265 Kirikiri Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå