GridView RowUpdating - UpdateParameters
Ich habe Probleme bei der Einstellung alle meine Update-Parameter. Die meisten der Felder in meinem GridView sind die Datenbindung, aber zwei von Ihnen sind dropdown-Listen, die in der Liste angegebenen Elemente und eine, die ziehen aus einer anderen Datenquelle. Ich möchte gerne Ihre Werte als UpdateParameters zu senden an meine Gespeicherten Prozedur, wenn der Benutzer klickt auf "Update" auf das GridView. Obwohl ich nicht sicher bin, wie man über das tun.
Hier ist der code mit dem ich arbeite, die beiden dropdown-Listen "ddlTransferLocation" und "ddlReconcileStatus":
DATENQUELLE
<asp:SqlDataSource ID="reconcileDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="GetReconcileItems" SelectCommandType="StoredProcedure"
UpdateCommand="UpdateReconcileItems" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="ItemID" />
<asp:Parameter Name="TransType" Type="String" />
<asp:Parameter Name="LocationID" Type="String" />
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Name="Stat" Type="String" />
<asp:Parameter Name="TransferLocation" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
C# ZEILE AKTUALISIEREN
protected void reconcileGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DropDownList ddlReconcileStatus = (DropDownList)reconcileGrid.Rows[e.RowIndex].Cells[0].FindControl("ddlReconcileStatus");
reconcileDataSource.UpdateParameters["Stat"].DefaultValue = ddlReconcileStatus.SelectedValue.ToString();
}
ASP.NET GRIDVIEW
<asp:UpdatePanel ID="reconcileUpdatePanel" runat="server">
<ContentTemplate>
<asp:GridView ID="reconcileGrid" runat="server" AutoGenerateColumns="False"
DataKeyNames="ItemID" DataSourceID="reconcileDataSource" OnRowUpdating="reconcileGrid_RowUpdating" >
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" ReadOnly="true" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" ReadOnly="true"/>
<asp:BoundField DataField="last_known_location" HeaderText="Last Known Location" SortExpression="last_known_location" ReadOnly="true" />
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server" Text='<%# evalStatus(Eval("Stat")) %>'></asp:Label></ItemTemplate><EditItemTemplate>
<asp:DropDownList ID="ddlReconcileStatus" runat="server" OnSelectedIndexChanged="ddlReconcileStatus_SelectedIndexChanged" AutoPostBack="true" >
<asp:ListItem Value="3" Text="Allocated"></asp:ListItem><asp:ListItem Value="4" Text="Transferred"></asp:ListItem></asp:DropDownList></EditItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="Transfer Location" Visible="false" >
<EditItemTemplate>
<asp:DropDownList ID="ddlTransferLocation" runat="server"
DataSourceID="ddlTransferLocationDataSource" DataTextField="Name"
DataValueField="ID" Enabled="true" ></asp:DropDownList>
<asp:SqlDataSource
ID="ddlTransferLocationDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [ID], [Name] FROM [TransferLocation]">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ItemID" HeaderText="ItemID" ReadOnly="true" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
InformationsquelleAutor Will | 2011-05-27
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie sollten mit
SqlDataSource.Updating
Veranstaltung und machen so etwas wieSorry, es sollte
EditIndex
msdn.microsoft.com/en-us/library/...Ich sehe, dass es immer den richtigen Wert und die Aktualisierung der parameter, die aber nie tatsächlich die gespeicherte Prozedur ausgeführt wird. Ich bekomme keine Fehler, einfach nichts passiert.
Nach einigen Tests scheint es, dass keines meiner Felder gebunden sind, im Zusammenhang mit der UpdateParameters. Irgendeinem Grund würde dies geschehen?
InformationsquelleAutor Bala R