ASP.NET Zone

Die ASP.NET Community. Alle Antworten rund um Microsoft® Webtechnologien
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe | Impressum | ASP.NET Zone Suchplugin

in
Home Blogs Foren FAQ Communities Fotos Downloads
Werbeanzeige

Gridview: edit/update funktioniert nicht richtig!

Letzter Beitrag 06-27-2012, 6:32 von walter.kohl. 1 Antworten.
Beiträge sortieren: Zurück Weiter
  •  05-04-2012, 10:50 224229

    Gridview: edit/update funktioniert nicht richtig!

    Hallo,

    in einem Gridview möchte ich die Zeilen editieren mit edit/update. Wenn ich nun einen Wert ändere und update wähle, wird der entsprechende EventHandler im CodeBehind aufgerufen. Dort habe ich einen Breakpoint gesetzt und sehe, das dort immer der alte Wert drin steht, aber nicht der neue denn ich im Edit-Modus eingetragen haben.
    An was kann das liegen bzw. wie muss ich das richtig abfragen um an den geänderten Wert zu kommen? (so wird nun der Datensatz zwar in die DB geschrieben, aber eben ohne die geänderten Daten...)

    Gruß

    Nose

    Markup:
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
                        AutoGenerateColumns="False" CssClass="datatable" DataKeyNames="id" GridLines="None"
                        RowStyle-HorizontalAlign="Center" PageSize="5">
                        <Columns>
                          
                            <asp:TemplateField HeaderText="Edit">
                                <ItemTemplate>
                                    <asp:LinkButton ID="lnkEdit" runat="server" Text="Edit" CommandName="Edit" />
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:LinkButton ID="lnkUpdate" runat="server" Text="Update" CommandName="Update" />
                                    <asp:LinkButton ID="lnkCancel" runat="server" Text="Cancel" CommandName="Cancel" />
                                </EditItemTemplate>
                            </asp:TemplateField>
                           
                            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                                SortExpression="id" />
                         
                            <asp:TemplateField HeaderText="Creator" SortExpression="Creator">
                                <ItemTemplate>
                                    <%# Eval("Creator")%>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txbCreator" runat="server" Text='<%# Eval("Creator") %>' />
                                </EditItemTemplate>
                            </asp:TemplateField>
                          
                        </Columns>
                        <PagerStyle CssClass="pager-row" />
                        <RowStyle CssClass="row" />
                        <EditRowStyle CssClass="row" />
                        <HeaderStyle HorizontalAlign="Center" />
                        <PagerSettings Mode="NumericFirstLast" PageButtonCount="7" FirstPageText="«" LastPageText="»" />
                        <SortedAscendingCellStyle CssClass="sortasc" />
                        <SortedAscendingHeaderStyle CssClass="sortasc" />
                        <SortedDescendingCellStyle CssClass="sortdesc" />
                        <SortedDescendingHeaderStyle CssClass="sortdesc" />
                    </asp:GridView>


    CodeBehind:

    Private Sub GridView1_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
            GridView1.EditIndex = e.NewEditIndex
            BindGrid()
    End Sub

    Private Sub GridView1_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating
            'get selected id from Tabel
            Dim id = GridView1.DataKeys(e.RowIndex).Value
            Dim row As GridViewRow = TryCast(GridView1.Rows(e.RowIndex), GridViewRow)
            Dim tCreator As TextBox = TryCast(row.FindControl("txbCreator"), TextBox)
      
            Using sqlCon As New SqlConnection(sqlConStr)
                Dim sql As String
                sql = "Update tChangeClass0_log set Creator=@Creator where id = @id"
                Using cmd As New SqlCommand(sql, sqlCon)
                    cmd.Parameters.AddWithValue("@Creator", tCreator.Text.Trim())     <--- Breakpoint: in tCreator.Text steht der alte Wert und nicht der neu editierte!
                    cmd.Parameters.AddWithValue("@id", id)
                    sqlCon.Open()
                    cmd.ExecuteNonQuery()
                    sqlCon.Close()
                End Using
            End Using
            GridView1.EditIndex = -1
            BindGrid()
         End Sub

  •  06-27-2012, 6:32 224455 Antwort zu 224229

    AW: Gridview: edit/update funktioniert nicht richtig!

    Achte mal darauf, ob Du in Deinem Code "e.OldValues oder e.NewValues" zurück bekommst...

    Beste Grüße

    Walter


    Wir tun nicht nur was wir können,
    wir können auch das was wir tun!
Als RSS Feed in XML ansehen
Powered by Community Server (Commercial Edition)