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