Får ett problem när jag vill uppdatera en DB. Vet inte om detta fungerar men när jag väljer att editera en rad i "DATAGRID" så blir alla fält 3st editerbara men hur får jag tag på värdet? Hej, Tack, funkar.Uppdatera från en DATAGRID
tittar man i koden så står det <input name="titleGrid:_ctl3:_ctl1" type="text" value="detta är en test" />.
Kan man få tag på namnet på något sätt då BOUNDCOLUMN inte har något namn?
//Henke
<code>
Sub OnEdit(sender As Object, E As DataGridCommandEventArgs)
Try
sender.EditItemIndex = E.Item.ItemIndex
BindData()
Message.Text = "Status: In Edit Mode"
Catch myException as Exception
Message.Text = ("Exception: " + myException.ToString())
End Try
End Sub
Sub OnUpdate(sender As Object, E As DataGridCommandEventArgs)
Try
Dim iId as Integer
Dim sDesc as String
Dim txtBox as TextBox
iId = titlegrid.datakeys.item(e.item.itemindex)
txtBox = e.item.findcontrol("siteDescription")
-->FEL sDesc = txtBox.Text
UpdateSites(sdesc, iId)
titleGrid.EditItemIndex=-1
BindData()
Message.Text ="Status: Update Completed"
Catch myException as Exception
Message.Text = ("Exception: " + myException.ToString())
End Try
End Sub
<ASP:DATAGRID ID="titleGrid" RUNAT="SERVER" FORECOLOR="Black" AUTOGENERATECOLUMNS="false" DATAKEYFIELD="id"
ONPAGEINDEXCHANGED="OnPageIndexChanged" ONEDITCOMMAND="OnEdit"
ONCANCELCOMMAND="OnCancel" ONUPDATECOMMAND="OnUpdate" ONDELETECOMMAND="OnDelete" ONSORTCOMMAND="OnSorted"
ALLOWSORTING="True" ALLOWPAGING="True" PAGESIZE="5" PAGERSTYLE-MODE="NextPrev" PAGERSTYLE-HORIZONTALALIGN="Center">
<ALTERNATINGITEMSTYLE BACKCOLOR="Gainsboro" />
<FOOTERSTYLE BACKCOLOR="Silver" FORECOLOR="White" />
<ITEMSTYLE BACKCOLOR="White" />
<HEADERSTYLE BACKCOLOR="Navy" FORECOLOR="White" FONT-BOLD="True" />
<COLUMNS>
<ASP:BOUNDCOLUMN HEADERTEXT="Site" DATAFIELD="siteName" SORTEXPRESSION="siteName"></ASP:BOUNDCOLUMN>
<ASP:BOUNDCOLUMN HEADERTEXT="Description" DATAFIELD="siteDescription" SORTEXPRESSION="siteDescription"></ASP:BOUNDCOLUMN>
<ASP:BOUNDCOLUMN HEADERTEXT="Site Url" DATAFIELD="siteUrl" SORTEXPRESSION="siteUrl" DATAFORMATSTRING="{0:C}"></ASP:BOUNDCOLUMN>
<ASP:EDITCOMMANDCOLUMN EDITTEXT="Edit" CANCELTEXT="Cancel" UPDATETEXT="OK"></ASP:EDITCOMMANDCOLUMN>
<ASP:BUTTONCOLUMN TEXT="Delete" COMMANDNAME="Delete"></ASP:BUTTONCOLUMN>
</COLUMNS>
</ASP:DATAGRID>
</code>Sv: Uppdatera från en DATAGRID
Om du inte vill att en kolumn ska vara editerbar sätter du ReadOnly="true" på den.
I din OnUpdate kan du skriva så här för att få reda på värdet som ursprungligen står i kolumnen längst till vänster = kolumn/Cells 0:
Dim itemCell0 As TableCell = e.Item.Cells(0)
Dim strVarde As String = itemCell0.Text
strVarde är det som står i kolumnen utan editering.
För att fånga vad som skrivits vid editering kan du använda denna kod:
Dim strVarde As String
Dim aTextBox As TextBox
aTextbox = CType(e.Item.Cells(0).Controls(0), TextBox)
strVarde = aTextBox.Text.ToString
/AnnSv:Uppdatera från en DATAGRID
Då jag använder session("sortField") för att komma ihåg sorteringen och det fungerar bra på rubrikerna när man klickar på edit och så tappar session variableran sitt data vad kan det bero på?
//Henke