在asp.net Gridview中部分获取数据

时间:2016-05-04 09:11:56

标签: c# asp.net linq gridview

我的数据非常庞大因此,我需要逐个获取数据以加速页面行为。

我有这个Gridview

 <asp:GridView ID="gvValues" runat="server" Width="100%" AllowPaging="True"  
PagerSettings-Mode="NumericFirstLast" OnRowCommand="gvValues_RowCommand"
      AutoGenerateColumns="False" CellPadding="0" PageSize="15" 
     OnRowDataBound="gvValues_RowDataBound" OnPageIndexChanging="gvValues_PageIndexChanging" >

功能

private void FillData()
{
    var pagesize = gvValues.PageSize;
    var pageindex = gvValues.PageIndex;
      products = ProductBLL.GetProductsByStoreIDcust(storeId, null,
                out totalRecords, pageindex, pagesize, keyword, txtSearchBarcode.Text);
    gvValues.DataSource = products;
    gvValues.DataBind();
}

此函数在加载中填充GridView,再次在

中填充
protected void gvValues_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    gvValues.PageIndex = e.NewPageIndex;

    this.FillData();
}

此函数从数据库中获取数据

public static List<Product> GetProductsByStoreIDcust(int? StoreID, ProductLocation? location , out int totalRecords, int itemsToSkip,
            int pageSize , string search = "", string barcode = "", string Relations = "no"             )
        { totalRecords = products.Count();
                if (products.Count() > 0)
                    return products.Skip(itemsToSkip).Take(pageSize).ToList();
                else
                    return null;

        }

我怎样才能获得

var pageCount = query.Count();

现在,此gridview正确显示前15项,

但是gridview下的分页消失了,我的代码中缺少的内容请帮助

2 个答案:

答案 0 :(得分:0)

尝试在页面代码中添加此内容:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
              this.FillData();
        }
    }

好的,看看这个project

答案 1 :(得分:0)

您需要执行查询才能获取所有记录。所以你有记录号,页面大小,你可以计算页数。使用它们,您可以构建自己的寻呼机(使用转发器或寻呼机控制 - 从3.5开始)

然后您可以使用您的代码获取当前页面中的记录。

我建议您也可以使用其他插件https://datatables.net/