Jag fösöker fånga värden från en textbox när jag ska uppdatera en datagrid. Jag har kommit så långt att jag har lokliserat hur jag får tag i värdet. Men någonting blir fel. När jag försöker skriva ut värdet så går inte det. Däremot om jag försöker skriva ut värdet från tidigare eller senare index så går det! Vad är det för löjligt fel? Nu har jag lyckats komma åt rätt textbox men jag kan bara fånga upp det gamla värdet. Jag har en känsla av att det är postback som hindrar mig från att koma åt värdet. Har jag rätt?Uppdatera i Datagrid
<code>
Dim ds As New Data.DataSet()
Dim bildxml As New XmlDocument()
ds.ReadXml(Server.MapPath("xml/bilder.xml"))
Dim dv As New DataView(ds.Tables(0))
dv.Sort = "kategori, id ASC"
Dim newTable As DataTable = ds.Tables(0).Clone
Dim i As Integer
For i = 0 To dv.Count - 1
newTable.ImportRow(dv(i).Row)
Next
Dim newDataset As New DataSet()
newDataset.Tables.Add(newTable)
DataGrid1.DataSource = newTable
Dim editcolumn As New EditCommandColumn()
editcolumn.CancelText = "Cancel"
editcolumn.EditText = "Edit"
editcolumn.UpdateText = "update"
editcolumn.HeaderText = "Edit?"
DataGrid1.Columns.Add(editcolumn)
DataGrid1.AllowPaging = True
DataGrid1.PageSize = 5
DataGrid1.DataKeyField = "id"
DataGrid1.DataBind()
Sub grid_update(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim bildindex As String
bildindex = CInt(e.Item.ItemIndex)
Dim fstring As String = DataGrid1.Items(bildindex).Cells(1).Text ' Om jag ökar bildindex med 1 så får fstring ett värde
Response.Write(fstring)
End Sub
</code>
Förstod just att värdet ligger ju nu i en textbox så då det ju det värdet som jag måste komma åt. Men hur kommer jag åt det? M.a.o, hur döper jag de textboxar som skapas dynamiskt till ett namn som jag sedan kan söka efter?Sv: Uppdatera i Datagrid
<code>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call dataset()
End Sub
function dataset()
Dim ds As New Data.DataSet()
Dim bildxml As New XmlDocument()
ds.ReadXml(Server.MapPath("xml/bilder.xml"))
Dim dv As New DataView(ds.Tables(0))
dv.Sort = "kategori, id ASC"
Dim newTable As DataTable = ds.Tables(0).Clone
Dim i As Integer
For i = 0 To dv.Count - 1
newTable.ImportRow(dv(i).Row)
Next
Dim newDataset As New DataSet()
newDataset.Tables.Add(newTable)
DataGrid1.DataSource = newTable
Dim editcolumn As New EditCommandColumn()
editcolumn.CancelText = "Cancel"
editcolumn.EditText = "Edit"
editcolumn.UpdateText = "update"
editcolumn.HeaderText = "Edit?"
DataGrid1.Columns.Add(editcolumn)
DataGrid1.AllowPaging = True
DataGrid1.PageSize = 5
DataGrid1.DataKeyField = "id"
DataGrid1.DataBind()
end function
Dim bildindex As Integer
bildindex = CInt(e.Item.ItemIndex) 'Hämtar vilken rad som editeras
'--TEXTBOXAR---
Dim idbox As New TextBox()
Dim katbox As New TextBox()
Dim adressbox As New TextBox()
Dim beskbox As New TextBox()
Dim prisa3box As New TextBox()
Dim prisa4box As New TextBox()
Dim bestbox As New TextBox()
Dim datumbox As New TextBox()
Dim horbox As New TextBox()
idbox = DataGrid1.Items(bildindex).Cells(1).Controls(0) 'Hämtar ut värdet i textboxen
katbox = DataGrid1.Items(bildindex).Cells(2).Controls(0)
adressbox = DataGrid1.Items(bildindex).Cells(3).Controls(0)
beskbox = DataGrid1.Items(bildindex).Cells(4).Controls(0)
prisa3box = DataGrid1.Items(bildindex).Cells(5).Controls(0)
prisa4box = DataGrid1.Items(bildindex).Cells(6).Controls(0)
bestbox = DataGrid1.Items(bildindex).Cells(6).Controls(0)
datumbox = DataGrid1.Items(bildindex).Cells(7).Controls(0)
horbox = DataGrid1.Items(bildindex).Cells(8).Controls(0)
DataGrid1.DataBind()
end sub
</code>