【问题标题】:How to update gridview row without datarowview?如何在没有 datarowview 的情况下更新 gridview 行?
【发布时间】:2012-11-24 23:29:00
【问题描述】:

在我的 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>

【问题讨论】:

  • 你能显示绑定代码吗? (IE grdvOffers.DataSource=????)

标签: c# gridview datarowview


【解决方案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();
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    相关资源
    最近更新 更多