2011-04-11 5 views
0

나머지 부분은 업데이트되지 않는 단일 매개 변수를 제외하고 완벽하게 작동하는 여러 데이터 항목이 포함 된 formview가 있습니다. formview의 데이터 소스 updateparameter는 코드 비하인드에서 업데이트를 처리 할 수 ​​있도록 아무 것도하지 않도록 설정됩니다. formview의 ItemUpdating 이벤트의 OldValues ​​및 NewValues ​​인수에 누락 된 하나의 매개 변수 ("salesprice")를 제외하고 모든 항목이 올바르게 작동합니다. 데이터는 제대로 포맷 된대로 텍스트 상자로 가져옵니다.ItemUpdating NewValues ​​누락 된 매개 변수

저는 html, SQL (getLoanData()) 및 코드 숨김을 첨부했습니다.

"salesprice"매개 변수를 제외한 모든 매개 변수가 New/OldValue 인수에 존재하는 이유는 무엇입니까? formatstring없이 텍스트 상자를 채우려고했는데 여전히 누락되었습니다. 거기에 문제가 발생할 수 있습니다 돈을 SQL 데이터 형식에 대한 뭔가가 있습니까?

HTML :

<asp:FormView ID="fvLoanDetails" runat="server" DataKeyNames="orderid" 
DataSourceID="sqlLoanDetails" Width="100%"> 
<ItemTemplate> 
    ... 
</ItemTemplate> 
<EditItemTemplate> 
    <table class="orderSectionHeader"> 
     <tr> 
      <td style="padding-left:10px;"> 
       <h2>Loan Details</h2> 
      </td> 
      <td style="text-align:right;">  
       <asp:Button ID="btnCancel" runat="server" Text="Cancel" CommandName="Cancel" /> 
       <asp:Button ID="bvnSave" runat="server" Text="Save" CommandName="Update" /> 
      </td> 
     </tr> 
    </table> 
    <table class="orderSection"> 
     <tr> 
      <td class="orderHeader" style="vertical-align:top;"> 
       Loan Number 
      </td> 
      <td> 
       <asp:Label ID="lblLoanNumber" CssClass="orderData" runat="server" 
        Text='<%# Bind("loannumber") %>' /> 
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader"> 
       Business Channel 
      </td> 
      <td> 
       <asp:DropDownList ID="ddlBusinessChannel" runat="server" 
        DataSourceID="sqlBusinessChannels" DataTextField="BusinessChannel" 
        DataValueField="BusinessChannel" SelectedValue='<%# Bind("businesschannel") %>'> 
       </asp:DropDownList>         
       <asp:SqlDataSource ID="sqlBusinessChannels" runat="server" 
        ConnectionString="<%$ ConnectionStrings:Jade_4 %>" 
        SelectCommand="SELECT DISTINCT [BusinessChannel] FROM [Loans] ORDER BY [BusinessChannel]"> 
       </asp:SqlDataSource>         
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader"> 
       Loan Type 
      </td> 
      <td> 
       <asp:DropDownList ID="ddlLoanType" runat="server" 
        DataSourceID="sqlLoanType" DataTextField="LoanType" 
        DataValueField="LoanType" SelectedValue='<%# Bind("loantype") %>'> 
       </asp:DropDownList>         
       <asp:SqlDataSource ID="sqlLoanType" runat="server" 
        ConnectionString="<%$ ConnectionStrings:Jade_4 %>" 
        SelectCommand="SELECT DISTINCT [LoanType] FROM [Loans] ORDER BY [LoanType]"> 
       </asp:SqlDataSource> 
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader"> 
       Purpose 
      </td> 
      <td> 
       <asp:DropDownList ID="ddlPurpose" runat="server" 
        SelectedValue='<%# Bind("purpose") %>'> 
        <asp:ListItem Text="Purchase" Value="False" /> 
        <asp:ListItem Text="Refinance" Value="True" /> 
       </asp:DropDownList>    
      </td> 
     </tr> 
     <tr id="trSalesPrice" runat="server"> 
      <td class="orderHeader"> 
       Sales Price 
      </td> 
      <td> 
       <asp:TextBox ID="txtSalesPrice" CssClass="orderData" runat="server" Width="100" 
        Text='<%# Bind("salesprice", "{0:F2}") %>' /> 
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader"> 
       Borrower 
      </td> 
      <td> 
       <table cellspacing="0"> 
        <tr style="font-size:8pt;padding-bottom:0px;"> 
         <td>First</td><td>Last</td> 
        </tr> 
        <tr> 
         <td> 
          <asp:TextBox ID="txtBFirst" CssClass="orderData" runat="server" Width="80" 
           Text='<%# Bind("firstname") %>' /> 
         </td> 
         <td> 
          <asp:TextBox ID="txtBLast" CssClass="orderData" runat="server" Width="120" 
           Text='<%# Bind("lastname") %>' /> 
         </td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader"> 
       Borrower Email 
      </td> 
      <td> 
       <asp:TextBox ID="txtEmail" CssClass="orderData" runat="server" Width="200" 
        Text='<%# Bind("email") %>' /> 
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader" style="vertical-align:top;"> 
       Mailing Address 
      </td> 
      <td> 
       <table cellspacing="0"> 
        <tr style="font-size:8pt;padding-bottom:0px;"> 
         <td colspan="3">Address</td> 
        </tr> 
        <tr> 
         <td colspan="3"> 
          <asp:TextBox ID="txtAddress" CssClass="orderData" runat="server" Width="200" 
           Text='<%# Bind("address") %>' /> 
         </td> 
        </tr> 
        <tr style="font-size:8pt;padding-bottom:0px;"> 
         <td>City</td><td>State</td><td>Zip</td> 
        </tr> 
        <tr> 
         <td> 
          <asp:TextBox ID="txtCity" CssClass="orderData" runat="server" Width="100" 
           Text='<%# Bind("city") %>' /> 
         </td> 
         <td> 
          <asp:TextBox ID="txtState" CssClass="orderData" runat="server" Width="30" 
           Text='<%# Bind("state") %>' /> 
         </td> 
         <td> 
          <asp:TextBox ID="txtZip" CssClass="orderData" runat="server" Width="50" 
           Text='<%# Bind("zip") %>' /> 
         </td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader"> 
       Borrower Primary 
      </td> 
      <td> 
       <asp:TextBox ID="txtBPhone" CssClass="orderData" runat="server" 
        Text='<%# Bind("phone1", "{0:(###) ###-####}")%>' /> 
      </td> 
     </tr> 
     <tr> 
      <td class="orderHeader"> 
       Borrower Secondary 
      </td> 
      <td> 
       <asp:TextBox ID="txtBCell" CssClass="orderData" runat="server" 
        Text='<%# Bind("phone2", "{0:(###) ###-####}")%>' /> 
      </td> 
     </tr> 
    </table> 
</EditItemTemplate> 
</asp:FormView> 
<asp:SqlDataSource ID="sqlLoanDetails" runat="server" 
    ConnectionString="<%$ ConnectionStrings:Jade_4 %>" 
    SelectCommand="select @orderid as orderid, * from dbo.getLoanData(@orderid)" 
    UpdateCommand="select @orderid"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="hdnOrderID" Name="orderid" 
      PropertyName="Value" DefaultValue="0" /> 
    </SelectParameters>   
</asp:SqlDataSource> 

VB.NET :

SQL
Protected Sub fvLoanDetails_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.FormViewUpdateEventArgs) Handles fvLoanDetails.ItemUpdating 

    Dim o As Order = DAL.GetOrderById(hdnOrderID.Value) 
    Dim l As Loan = DAL.GetLoanByLoanID(o.LoanID) 
    Dim b As Contact = DAL.GetContactById(l.BorrowerContactID) 

    l.BusinessChannel = e.NewValues("businesschannel") 
    l.LoanType = e.NewValues("loantype") 
    l.Purpose = e.NewValues("purpose") 
    l.SalesPrice = e.NewValues("salesprice") 
    DAL.UpdateLoan(l) 

    b.FirstName = e.NewValues("firstname") 
    b.LastName = e.NewValues("lastname") 
    b.Address = e.NewValues("address") 
    b.City = e.NewValues("city") 
    b.State = e.NewValues("state") 
    b.Zip = e.NewValues("zip") 
    b.Phone = e.NewValues("phone1") 
    b.Cell = e.NewValues("phone2") 
    DAL.UpdateContact(b) 

End Sub 

:

select 
l.loannumber, l.businesschannel, l.loantype, l.purpose, l.salesprice, b.firstname, b.lastname, b.email, 
b.address, b.city, b.state, b.zip, b.phone as phone1, b.cell as phone2, 
dbo.formataddressweb(b.address, '', b.city, b.state, b.zip) as mailingaddress   from loans l 
join orders o on [email protected] 
join contacts b on l.borrowercontactid=b.contactid 
where l.loanid=(select loanid from orders where [email protected]) 
+0

나는 조건부로 숨길 수 있도록 테이블 행을 서버 측에서 실행하도록 만들었습니다. 이로 인해 항목이 ItemUpdating 이벤트에서 제거되었습니다. 테이블 행을 숨기거나 표시하는 또 다른 방법을 찾아 보겠습니다. – Andy

답변

0

는 다른 형식 문자열을 시도 해 봤나?

Text='<%# Bind("salesprice", "{0:C}") %>' 
관련 문제