簡體   English   中英

FormView在更新時不向其SqlDataSource提供OldValues

[英]FormView not providing OldValues to its SqlDataSource on Update

我一直在尋找這種解決方案4天了-幫我stackoverflow ..您是我唯一的希望。

我正在使用FormView來啟用編輯大表的行。 使用DataSourceId屬性指定FormView的DataSource。

SqlDataSource指定了OldValuesParameterFormatString,並將ConflictDetection設置為“ CompareAllValues”。

我的問題是,FormView尚未設置OldValues,因此在Update命令期間不會發生CompareAllValues。

我搜尋了互聯網,並遇到了一些建議,但是都沒有解決問題。 我希望有人知道為什么未設置OldValues。

這是(簡化的)代碼:

<asp:FormView ID="FormViewPlanAgain" runat="server" DataSourceID="SqlPlanSourceAgain"     DataKeyNames="PlansRID">
    <ItemTemplate>
        <%# Eval("PlanName") %>
    </ItemTemplate>
    <EditItemTemplate>
        <dx:ASPxTextBox id="ASPxTextBox36" runat="server" CssClass="floatLeft veryLarge" Text='<%# Bind("PlanName") %>' />
        <asp:Button ID="btnUpdate" runat="Server" CommandName="Update" Text="Update" />
        <asp:Button ID="btnCancel" runat="Server" CommandName="Cancel" Text="Cancel" />
    </EditItemTemplate>
</asp:FormView>

<asp:SqlDataSource ID="SqlPlanSourceAgain" runat="server" OldValuesParameterFormatString="original_{0}" ConflictDetection="CompareAllValues"
            ConnectionString="<%$ ConnectionStrings:cpaConnectionString %>" 
            SelectCommand="Select * FROM Plans WHERE Plans.PlansRID = @PlansRID" SelectCommandType="Text"
            UpdateCommand="Plans_Update" UpdateCommandType="StoredProcedure" OnSelecting="SqlPlanSource_Selecting">
            <SelectParameters>
                <asp:Parameter DefaultValue="0" Name="PlansRID" Type="Int32" />
            </SelectParameters>
            <UpdateParameters>
                <asp:Parameter Name="GroupsRID" Type="Int32" />
                <asp:Parameter Name="ProductCodeRID" Type="Int32" />
                <asp:Parameter Name="ProductRID" Type="Int32" />
                <asp:Parameter Name="PoolRID" Type="Int32" />
                <asp:Parameter Name="PlanName" Type="String" />
                <asp:Parameter Name="PlanID" Type="Int32" />
                <asp:Parameter Name="ProductID" Type="Int32" />
                <asp:Parameter Name="AdminPercent" Type="String" />
                <asp:Parameter Name="ArizonaEmployees" Type="String" />
                <asp:Parameter Name="BenefitChanges" Type="Int32" />
                <asp:Parameter Name="EmployeesAfterWaivers" Type="String" />
                <asp:Parameter Name="ParticipationPercent" Type="String" />
                <asp:Parameter Name="TheoreticalPremium" Type="String" />
                <asp:Parameter Name="CCBrokerOnCorrespondence" Type="String" />
                <asp:Parameter Name="ClaimSystemPlanNameRider" Type="String" />
                <asp:Parameter Name="COBRAAdminEntityRID" Type="Int32" />
                <asp:Parameter Name="Commission" Type="String" />
                <asp:Parameter Name="CoveragePastRetirement" Type="String" />
                <asp:Parameter Name="DependentAgeLimit" Type="String" />
                <asp:Parameter Name="DomesticPartnerCoverage" Type="String" />
                <asp:Parameter Name="EligibleEmployeeCount" Type="String" />
                <asp:Parameter Name="EmployerGroupContribution" Type="String" />
                <asp:Parameter Name="EnrollmentCount" Type="String" />
                <asp:Parameter Name="ERISA" Type="String" />
                <asp:Parameter Name="ExternalID" Type="Int32" />
                <asp:Parameter Name="ExternalCarrierEntityRID" Type="Int32" />
                <asp:Parameter Name="FundingTypeRID" Type="Int32" />
                <asp:Parameter Name="GenerateRenewal" Type="String" />
                <asp:Parameter Name="HandbookTypeRID" Type="Int32" />
                <asp:Parameter Name="HandbookDistributionRID" Type="Int32" />
                <asp:Parameter Name="InternalCOB" Type="String" />
                <asp:Parameter Name="LegalGuardianship" Type="String" />
                <asp:Parameter Name="NewHireWaitingPeriod" Type="String" />
                <asp:Parameter Name="OnlineEnrollment" Type="String" />
                <asp:Parameter Name="ParticipationRequirement" Type="String" />
                <asp:Parameter Name="RiskPercent" Type="String" />
                <asp:Parameter Name="RiskTier" Type="String" />
                <asp:Parameter Name="SASDivisionRID" Type="String" />
                <asp:Parameter Name="SASPlanRID" Type="String" />
                <asp:Parameter Name="ContractLengthRID" Type="String" />
                <asp:Parameter Name="StepChildrenCoverageTypeRID" Type="String" />
                <asp:Parameter Name="TargetLossRatio" Type="String" />
                <asp:Parameter Name="UnderwritingCompanyRID" Type="String" />
                <asp:Parameter Name="VoluntaryContributoryTypeRID" Type="String" />
                <asp:Parameter Name="EditorUsersRID" Type="String" />
                <asp:Parameter Name="EffectiveStartDate" Type="String" />
                <asp:Parameter Name="EffectiveEndDate" Type="String" />
                <asp:Parameter Name="Stamp" Type="String" />
                <asp:Parameter Name="SequenceNumber" Type="String" />
                <asp:Parameter Name="ActiveFlag" Type="String" />
                <asp:Parameter Name="Note" Type="String" />
                <asp:Parameter Name="HistoryNotes" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>

為了清楚起見,我刪除了ItemTemplate和EditItemTemplate中的所有其他字段,以免您頭疼。 我將它們留在SqlDataSource中,因此您可以看到它正在處理很多字段。

據我所知,我已經正確設置了所有內容,甚至從頭開始完全重做了所有內容,只是為了確保。 有人在想些小竅門嗎? 非常感謝您的參與。

將原始值添加到您的參數列表:

<UpdateParameters> 
            <asp:Parameter Name="GroupsRID" Type="Int32" /> 
            <asp:Parameter Name="original_GroupsRID" Type="Int32" /> 
            <asp:Parameter Name="ProductCodeRID" Type="Int32" /> 
            <asp:Parameter Name="original_ProductCodeRID" Type="Int32" /> 
            <asp:Parameter Name="ProductRID" Type="Int32" /> 
            <asp:Parameter Name="original_ProductRID" Type="Int32" /> 

您還需要修改存儲過程(Plans_Update)以接受這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM