0

我正在尝试实现与此海报相同的目标,并且我正在关注其中一个答案所说的我需要做的事情。

这是我的方法

public void DisplayItemRangeForCurrentPage()
{
    var totalRecords = ((DataView)gvMagicalSearchResults.DataSource).Count;
    var endRecord = gvMagicalSearchResults.PageSize * (gvMagicalSearchResults.PageIndex + 1);
    var startsRecods = endRecord - gvMagicalSearchResults.PageSize;

    if (endRecord > totalRecords)
        endRecord = totalRecords;

    if (startsRecods == 0) startsRecods = 1;
    if (endRecord == 0) endRecord = totalRecords;

    var str = new StringBuilder();
    str.Append((string)HttpContext.GetGlobalResourceObject("magicalResx", "GrivSearchCountMessage_Shows"));
    str.Append(" " + startsRecods + " - " + endRecord + " ");
    str.Append((string)HttpContext.GetGlobalResourceObject("magicalResx", "GrivSearchCountMessage_OfTotal"));
    str.Append(" " + totalRecords + " ");

    ltrResultsCount.Text = str.ToString();
}

无论我在哪里调用此方法,它都会在var totalRecords = ((DataView)gvMagicalSearchResults.DataSource).Count;在行上引发“对象未设置为对象的实例”错误。

我尝试在几个 GridView/ObjectDataSource 事件中调用它。我尝试将其称为PreRender, OnLoad, Render- 唉,他们都没有工作......

那么谁能告诉我gridview在事件周期中的哪个位置获取它的数据源?

4

1 回答 1

0

它发生在GridView.OnDataBound

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basedataboundcontrol.databound%28v=vs.90%29.aspx

于 2013-07-24T15:22:03.537 回答