Как обновить строку gridview без datarowview?

В моем событии RowDataBound я хотел бы обновить значения строки, но не могу преобразовать свой объект в DataRowView. Есть ли другой способ обновить столбцы строк?

Вот что у меня есть. Он не может преобразовать тип 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>

person chobo    schedule 06.12.2012    source источник
comment
Не могли бы вы показать код привязки? (IE grdvOffers.DataSource=????)   -  person Steve    schedule 07.12.2012


Ответы (1)


Я понял. Вы можете просто изменить объект, вернуть его и привязать к данным. Ниже показано, как.

  /// <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();
        }
    }
person chobo    schedule 06.12.2012