2013-03-06 27 views
0

是 表的副本而不是在DataList控件的DataTable刷新發行

顯示

你可以建議我任何解決方案,請? 我的代碼

DataTable dt1 = new DataTable(); 
    DataTable dt = frmbal.GetAllForum(); 

    for (int i = 0; i < dt.Columns.Count;i++) 
     dt1.Columns.Add(dt.Columns[i].Caption); 

    // dt1.Rows.Clear(); 
    DataRow []dr=dt.Select("intParentThreadID="+ Request.QueryString["id"]); 
    dt1.Rows.Add (dr); 
    dt1.AcceptChanges(); 
    DataList1.DataSource =dt1; 
    DataList1.DataBind(); 

這個代碼是在頁面加載事件 由於提前

回答

0

試試這個:

foreach (DataRow dr in dt.Rows) { 
     dt1.Rows.Add(dr.ItemArray); 
} 
0

沒有DataRowCollection.Add方法,這需要DataRow[]並插入所有行。採用object[]的過載是使用這些字段插入一條記錄。

所以這不起作用:

DataRow []dr=dt.Select("intParentThreadID="+ Request.QueryString["id"]); 
dt1.Rows.Add (dr); 

您應該使用DataTable.MergeDataTable.Clone(克隆包括列的表)。

DataTable dt = frmbal.GetAllForum(); 
DataTable dt1 = dt.Clone(); 
dt1.Merge(dt); 
+0

感謝它爲我工作 – 2013-03-06 08:29:12

+0

不客氣。 – 2013-03-06 09:15:02

0

維沙爾Suthar好

。但必須在此代碼是!的IsPostBack

樣品的內部

protected void Page_Load(object sender, EventArgs e)  
    {  
     if (!IsPostBack)  
     {  
     DataTable dt1 = new DataTable(); 
     DataTable dt = frmbal.GetAllForum(); 
     for (int i = 0; i < dt.Columns.Count;i++) 
     dt1.Columns.Add(dt.Columns[i].Caption); 
    // dt1.Rows.Clear(); 
     DataRow []dr=dt.Select("intParentThreadID="+ Request.QueryString["id"]); 
     foreach (DataRow dr in dt.Rows) { 
     dt1.Rows.Add(dr.ItemArray); 
     } 
     dt1.AcceptChanges(); 
     DataList1.DataSource =dt1; 
     DataList1.DataBind(); 

     }  
    }