Невозможно получить просмотр списка с работающим на 100% данным - PullRequest
0 голосов
/ 02 февраля 2012

У меня странные проблемы с моим списком и пейджером. У меня глобальный поиск (поля поиска на главной странице)

Сценарий 1: Пользователь вводит поисковый запрос на любой странице, кроме моей страницы search.aspx

Результат: Работает

Сценарий 2: Пользователь использует пейджер данных для просмотра различных страниц поиска

Результат Работает

Сценарий 3:

  1. Пользователь вводит поисковый запрос с любой страницы ... - работает
  2. Теперь пользователь нажимает на разных страницах в пейджере - работает
  3. Пользователь вводит новый поисковый запрос - работает
  4. Нет результатов с первой попытки (нет результатов). Вторая попытка работает

Я выполняю привязку данных в следующем методе обработки данных

/// <summary>
    /// Set datasource here
    /// </summary>
    protected void DataPagerProducts_PreRender(object sender, EventArgs e)
    {        
        string searchString = "";

        // search cross post handler
        if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
        {
            Page previousPage = PreviousPage;
            TextBox tbSearch = (TextBox)PreviousPage.Master.FindControl("txtSearch");
            searchString = tbSearch.Text;
        }
        else if (IsPostBack)
        {
            TextBox tbSearch = (TextBox)Master.FindControl("txtSearch");
            searchString = tbSearch.Text;
        }

        // validation
        if (String.IsNullOrEmpty(searchString) || searchString.Length < 3)
        {
            return;
        }

        this.lvSearchResults.DataSource = SetSearchDataSource(searchString);
        this.lvSearchResults.DataBind();
    }





// paging
protected void lvSearchResults_DataBound(object sender, EventArgs e)
{
    dpSearchResults.Visible = (dpSearchResults.PageSize < dpSearchResults.TotalRowCount);

    Literal litRecordCount = (Literal)lvSearchResults.FindControl("litRecordCount");

    if (litRecordCount != null)
    {
        litRecordCount.Text = dpSearchResults.TotalRowCount.ToString("#,##0");
    }
}


 // Item list
    protected void lvSearchResults_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            //int channelName = (int)e.Item.DataItem;
            Channel channel = (Channel)e.Item.DataItem;
            ChannelItem ucChannelItem = (ChannelItem)e.Item.FindControl("ucChannelItem");


        }
    }
...