Ich habe ein Bestellsystem, das Bestellungen anzeigt, die eingegangen sind, und auch Bestellungen, die ausstehen. Wenn der Auftrag empfangen wird und das Kontrollkästchen aktiviert ist, möchte ich das Datum bei der Bestellung in die Datenbank aufnehmen. Offensichtlich möchte ich nur das Datum zu der Zeile hinzufügen, die überprüft wurde. Danke im Voraus.Datum zur Datenbank hinzufügen, wenn Kontrollkästchen in gridview aktiviert ist
relevanten HTML wie folgt:
<asp:GridView ID="gvOpenOrders" runat="server" AutoGenerateColumns="False" Width="100%" CellPadding="4" ForeColor="#333333"
GridLines="None" DataKeyNames="PurchaseOrderID" AllowPaging="True" AllowSorting="True"
OnSorting="gvOpenOrders_Sorting" EnableViewState="true" OnPageIndexChanging="OnPageIndexChanging" PageSize="15" ViewStateMode="Enabled">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Is Received" SortExpression="IsReceived">
<ItemTemplate>
<asp:CheckBox ID="chkRcvd" runat="server" AutoPostBack="true" Checked='<%# Bind("IsReceived") %>' Enabled='<%# Eval("IsReceived") = False %>' OnCheckedChanged="chkRcvd_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
Ich bin derzeit die Aktualisierung der Datenbank, wenn ein Update erhalten Schaltfläche geklickt wird, siehe unten:
Protected Sub btnUpdateReceived_Click(sender As Object, e As EventArgs) Handles btnUpdateReceived.Click
con.Open()
For Each row As GridViewRow In gvOpenOrders.Rows
Dim purchaseOrderID As Integer = Convert.ToInt32(gvOpenOrders.DataKeys(row.RowIndex).Values(0))
Dim isReceived As Boolean = TryCast(row.FindControl("chkRcvd"), CheckBox).Checked
cmd.CommandText = "usp_UpdatePurchaseOrder"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@OrderID", purchaseOrderID)
cmd.Parameters.AddWithValue("@IsReceived", isReceived)
cmd.ExecuteNonQuery()
Next
con.Close()
Response.Redirect(Request.Url.AbsoluteUri)
End Sub
Ich weiß, dass es ein Ereignis checkbox_CheckedChanged ist, aber ich bin unsicher, wie man es benutzt.
Dies ist hilfreich, mir das Datum zu geben, dass die Checkbox ausgewählt wurde, aber ich bin immer noch ein wenig an den Enden zu versuchen, die ID des CheckBox zu erhalten, die überprüft worden ist. Der Abschnitt "Für jeden", den ich oben verwende, durchläuft jede Zeile, in der ich nur die ausgewählte Zeile haben möchte. Gedanken? – mooreev