2015-08-03 48 views
0

我在事件中遇到问题OnItemUpdate ..在字典中NewValues是旧值。哪里不对?如何获得新的价值?ASP.NET FormView OnItemUpdate - 未更新新值

<asp:FormView 
    runat="server" 
    ID="frvKartaCharakterystyk" 
    RenderOuterTable="false" 
    DefaultMode="Edit" 
    OnItemUpdating="frvKartaCharakterystyk_ItemUpdating"> 
    <EditItemTemplate> 
     <div class="form-horizontal"> 
      <div class="form-group"> 
       <label class="col-sm-3 control-label" for="inputProdukt">Produkt</label> 
       <div class="col-sm-9"> 
        <asp:TextBox runat="server" id="inputProdukt" CssClass="form-control" Text='<%# Bind("Produkt") %>' /> 
       </div> 
      </div> 
      <div class="form-group"> 
       <div class="col-sm-offset-6 col-sm-3"><asp:LinkButton runat="server" CommandName="Update" type="button" class="btn btn-primary btn-lg btn-block">Zapisz</asp:LinkButton></div> 
       <div class="col-sm-3"><asp:LinkButton runat="server" CommandName="Cancel" OnClick="Cancel_Click" type="button" class="btn btn-default btn-lg btn-block">Anuluj</asp:LinkButton></div> 
      </div> 
     </div> 
    </EditItemTemplate> 
</asp:FormView> 

我隐藏:

protected void frvKartaCharakterystyk_ItemUpdating(object sender, FormViewUpdateEventArgs e) 
    { 
     try 
     { 
      this.KartaCharakterystyk.Produkt = (string)e.NewValues["Produkt"]; 
      Response.Redirect("KartyCharakterystyk.aspx#record-" + (KartaCharakterystyk.Id - 1)); 
     } 
     catch (Exception ex) 
     { 

     } 
    } 
+0

没有错误消息。事件正确启动。 e.NewValues词典存储旧值。 – BLuM

回答

0

的问题是在Page_Load

this.frvKartaCharakterystyk.DataSource = new object[] { this.KartaCharakterystyk }; 
this.frvKartaCharakterystyk.DataBind(); 

更改为:

if (!IsPostBack) 
{ 
    this.frvKartaCharakterystyk.DataSource = new object[] { this.KartaCharakterystyk }; 
    this.frvKartaCharakterystyk.DataBind(); 
}