2011-11-28 41 views
0

我必須將大量數據加載到動態網格視圖。具有基於數據動態創建的鏈接按鈕的網格視圖。 單擊鏈接按鈕時,應加載內網格。它工作正常。如何將大量數據轉換爲動態網格視圖

但每次單擊鏈接按鈕時,行邊界事件被觸發,以綁定主網格。

在行綁定事件中,內網格正在加載主網格中的每一行,該網格已被點擊。我在Session中維護了點擊鏈接按鈕的狀態(特定行的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; 
        } 
       } 
      } 
     } 
    } 
} 
+0

我們不知道什麼*加載大量的數據*手段。你能告訴我們什麼是大量的日期記錄數,字段數?也許一些代碼就是你在做什麼。我們無法從這個問題中看出發生了什麼。 – IAbstract

+0

感謝您的反饋。我的意思是記錄的數量。我有超過20000條記錄,併爲每個頁面綁定30條記錄。在每一行綁定上,我連接到SQL並獲取特定鏈接按鈕的內部網格細節。這個過程需要很長時間。 – Pooja

回答

1

普加,基於上面的評論,我會確保分頁按預期工作,你是:

- 只有裝載30個記錄在時間爲當前頁面,不是全部,並且僅渲染 30.

- 不是爲每個行綁定再次調用數據庫層;當加載當前頁面的數據時,您可以一次加載頁面每一行的所有詳細信息(因此不會超過頁面大小),因此您的數據庫調用將降至每頁1個,而不是1 + pagesize == 31在你的情況。

相關問題