【问题标题】:How to get Set 5 rows from dataset in every PostBack in asp.net如何从 asp.net 中每个 PostBack 的数据集中获取 Set 5 行
【发布时间】:2013-06-03 14:56:03
【问题描述】:

帮我整理以下问题。

我有一个数据集,并且该数据集有“n”行的表。

我想在数据集中显示表中的前 5 行。

我的页面将每 1 分钟刷新一次。因此,每当我的页面刷新时,我需要显示数据集中接下来的 5 行。

例如 如果我的数据集有 15 行。

第一次加载页面时,它应该只显示/获取数据集中的前 5 行(1 到 5)。

当页面回发/刷新时,它应该从数据集中显示第二组 5 行(6 到 10)。

当页面回发时,它应该从数据集中显示第三组 5 行(11 到 15)。

注意:我没有在我的网页中使用 GridView。 我正在使用动态控件从数据集中填充数据。

谢谢,

大卫

【问题讨论】:

  • 如果您需要数据库代码,请注明...

标签: asp.net datatable dataset datarow


【解决方案1】:

设置一个 hiddentfield 并将值设置为 1。然后在 ispostback=true 语句内的 pageload 上增加 hiddenfield 的值。然后将 hiddenfield 的值传递到数据库中。

示例代码...

    if (isPostBack){
hiddentFieldForTimeCount.value= (int)hiddentFieldForTimeCount.value+1;

}

function CallDB(){
DataTable tbl=function callDB(hiddentFieldForTimeCount.value);
DataBind(tbl);
}

根据隐藏字段值,您可以从数据库中选择数据。

【讨论】:

    【解决方案2】:

    您可以克隆原始数据表,并将您想要的任何行复制到克隆的数据表中。

    private DataTable CopyDataTable(DataTable dt, int index)
    {
        DataTable cloneDT = dt.Clone(); // Clone DataTable Structure
    
        for (int i = index, j = index + 5; i < j; i++)
        {
            DataRow dr = dt.Rows[i];
            cloneDT.Rows.Add(dr.ItemArray);
        }
    
        return cloneDT;
    }
    

    你可以像这样调用方法:

    GridView1.Datasource  = CopyDataTable(dt, 0); // create new DataTable, with rows 0-4
    GridView1.DataBind();
    
    GridView1.Datasource  = CopyDataTable(dt, 5); // create new DataTable, with rows 5-9
    GridView1.DataBind();
    

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 2014-03-02
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多