的DataTable刷新发行
问题描述:
是 表的副本而不是在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();
这个代码是在页面加载事件 由于提前
答
试试这个:
foreach (DataRow dr in dt.Rows) {
dt1.Rows.Add(dr.ItemArray);
}
答
没有DataRowCollection.Add
方法,这需要DataRow[]
并插入所有行。采用object[]
的过载是使用这些字段插入一条记录。
所以这不起作用:
DataRow []dr=dt.Select("intParentThreadID="+ Request.QueryString["id"]);
dt1.Rows.Add (dr);
您应该使用DataTable.Merge
和DataTable.Clone
(克隆包括列的表)。
DataTable dt = frmbal.GetAllForum();
DataTable dt1 = dt.Clone();
dt1.Merge(dt);
答
维沙尔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();
}
}
感谢它为我工作 – 2013-03-06 08:29:12
不客气。 – 2013-03-06 09:15:02