2012-12-06 4 views
0

내 RowDataBound 이벤트에서 행 값을 업데이트하려고하지만 개체를 ​​DataRowView로 변환 할 수 없습니다. 행 열을 업데이트하는 다른 방법이 있습니까?datarowview없이 gridview 행을 업데이트하는 방법은 무엇입니까?

다음은 내가 가지고있는 것입니다. Offer를 DataRowView로 변환 할 수 없습니다.

/// <summary> 
    /// Gridview Row Data Bound 
    /// </summary> 
    protected void grdvOffers_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     // Converts the UTC date to PST timezone 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     {    

      //DataRow row = ((DataRowView)e.Row.DataItem).Row; 
      Offer row = ((Offer)e.Row.DataItem).Row; 
      DateTime utcTime = row.Field<DateTime>("Created"); 
      DateTime dtUpdateDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, CFrmFunctions.GetPresetTimeZone()); 
      row.SetField<DateTime>("Created", dtUpdateDateTime); 
     } 
    } 


<asp:ObjectDataSource ID="objOfferDataSource" runat="server" SelectMethod="GetAllOffers" 
     TypeName="CancelForms.Repositories.OfferRepo"></asp:ObjectDataSource> 
+0

바인딩 코드를 표시 할 수 있습니까? (IE grdvOffers.DataSource = ????) – Steve

답변

0

알아 냈습니다. 개체를 수정하여 다시 설정하고 데이터 바인딩 할 수 있습니다. 아래에 방법이 나와 있습니다.

/// <summary> 
    /// Gridview Row Data Bound 
    /// </summary> 
    protected void grdvOffers_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     // Converts the UTC date to PST timezone 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      Offer offer = ((Offer)e.Row.DataItem); 
      offer.Created = TimeZoneInfo.ConvertTimeFromUtc(offer.Created, CFrmFunctions.GetPresetTimeZone()); 
      e.Row.DataItem = offer; 
      e.Row.DataBind(); 
     } 
    } 
관련 문제