如何对大量的数据进行动态网格视图

本文关键字:动态 网格 视图 数据 | 更新日期: 2023-09-27 18:16:00

我必须加载大量的数据到一个动态网格视图。基于数据动态创建链接按钮的网格视图。当点击链接按钮时,内部网格应该被加载。

但是每次单击链接按钮时,就会触发Row bound事件,以绑定主网格。

在行绑定事件中,将加载主网格中已单击的每一行的内部网格。我在会话中维护了单击链接按钮状态(特定行的id字段),并使用会话值,在主网格的每一行加载内部网格,这与行绑定事件中的会话值相匹配。

但加载时间较长。是否有其他方法可以在单击链接按钮时将数据绑定到动态网格视图,并保持已单击的链接按钮在网格内?

我的代码是
if (e.Row.RowType == DataControlRowType.DataRow)
{
    if (strCallTypeName[intLoop].ToLower() != "total")
    {
        LinkButton lnk = new LinkButton();
        lnk.Text = ((System.Data.DataRowView)(e.Row.DataItem)).Row[strCallTypeName[intLoop]].ToString();
        lnk.CommandArgument = strCallTypeName[intLoop] 
            + "|||" 
            + ((System.Data.DataRowView)(e.Row.DataItem)).Row["UserId"].ToString() 
            + "|||" 
            + ((System.Data.DataRowView)(e.Row.DataItem)).Row["Service"].ToString() 
            + "|||" 
            + e.Row.RowIndex;
        //lnk.Click += new EventHandler(lnk_Click);
        //lnk.CommandName = "Edit";
        lnk.Click += new EventHandler(lnk_Click);
        lnk.ToolTip = strCallTypeName[intLoop];
        lnk.CssClass = "lnk";
        tc.Controls.Add(lnk);
        string strUserID =grdSummaryCall.DataKeys[e.Row .RowIndex].Value.ToString();
        string strSessionUserDetails = string.Empty;
        strSessionUserDetails = (string)Session["GridUserDetails"];
        if (strSessionUserDetails != string.Empty && strSessionUserDetails !=null)
        {
            string[] strSplitUserDetails = strSessionUserDetails.Split(new string[] { "~" }, StringSplitOptions.None);
            Panel pnlTable = (Panel)e.Row.FindControl("pnlTable");
            for (int i = 0; i < strSplitUserDetails.Length; i++)
            {
                string[] strUserDetails = strSplitUserDetails[i].Split(new string[] { "," }, StringSplitOptions.None);
                if (strUserID == strUserDetails[1].ToString())
                {
                    if (pnlTable.Visible == false)
                    {
                        GetUserCallDetails(strUserDetails, e.Row);
                        pnlTable.Visible = true;
                    }
                }
            }
        }
    }
}

如何对大量的数据进行动态网格视图

Pooja,根据你上面的评论,我会确保分页按预期工作,你是:

1 - 一次为当前页面加载30条记录,而不是全部并呈现只有30 .

2 - NOT为每一行绑定再次调用数据库层;在加载当前页面的数据时,您可以一次加载页面每一行的所有详细信息(因此不超过页面大小,在您的示例中为30),因此您的数据库调用将减少到每页1次,而不是在您的示例中为1 + pagesize == 31。