我想把递归里得到的数据防在DataTable中,可总是得到一条记录,怎么解决?实际应该显示N条记录的DataRow dr1 = li.NewRow(); 好象在循环的时候总会去掉上次循环下来的记录li.Rows.Add(dr1);没有替加记录
怎么解决??---------------------------------------------------------------------------- private void BindData(DataTable dt, int id, int kg)
{
DataView dv = new DataView(dt);
dv.RowFilter = "parentid = " + id.ToString();
DataTable li = new DataTable();
li.Columns.Add(new DataColumn("id1", typeof(Int32)));
li.Columns.Add(new DataColumn("name", typeof(string))); foreach (DataRowView drv in dv)
{
int m = 0;
string blank = "";
if (id != 0)
{
m = m + 1 + kg;
for (int i = 0; i < m; i++)
{
blank += "-";//空格 }
} DataRow dr1 = li.NewRow();
int j = 1;
dr1[0] = j++;
dr1[1] = blank + drv["name"].ToString();
li.Rows.Add(dr1);
this.Repeater1.DataSource = li;
this.Repeater1.DataBind();
BindData(dt, Convert.ToInt32(drv["id"]), m);
} }
怎么解决??---------------------------------------------------------------------------- private void BindData(DataTable dt, int id, int kg)
{
DataView dv = new DataView(dt);
dv.RowFilter = "parentid = " + id.ToString();
DataTable li = new DataTable();
li.Columns.Add(new DataColumn("id1", typeof(Int32)));
li.Columns.Add(new DataColumn("name", typeof(string))); foreach (DataRowView drv in dv)
{
int m = 0;
string blank = "";
if (id != 0)
{
m = m + 1 + kg;
for (int i = 0; i < m; i++)
{
blank += "-";//空格 }
} DataRow dr1 = li.NewRow();
int j = 1;
dr1[0] = j++;
dr1[1] = blank + drv["name"].ToString();
li.Rows.Add(dr1);
this.Repeater1.DataSource = li;
this.Repeater1.DataBind();
BindData(dt, Convert.ToInt32(drv["id"]), m);
} }
解决方案 »
- 循环变量的问题
- history.go(-2)和load
- 大家好,小弟来此请教个问题:我们网站后台是用三层架构写的,但是不稳定,经常出毛病。必须重传Web.config才行。请教各位大侠,这是怎么回事呢?
- 3个div怎么就分不开呢,我有一个gridview 和一个iframe
- 最近很少人散分了?为了保持CSDN的良好传统.我来散一下. 级别低,一次散不多.大家抓紧吧...
- 简单的sql 问题 100分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 如何操作“下次记住我”
- 郁闷!vs2003调试时的奇怪问题?
- 端口引起的调试问题
- 上传的图片怎么保存到服务器指定的目录并获取完整路径?
- web.config 的问题
- FORM验证的问题
this.Repeater1.DataBind();
BindData(dt, Convert.ToInt32(drv["id"]), m);应该在Foreach 的外面吧
private void BindData(DataTable dt, int id, int kg)
{
DataView dv = new DataView(dt);
dv.RowFilter = "parentid = " + id.ToString();
li.Columns.Add(new DataColumn("id1", typeof(Int32)));
li.Columns.Add(new DataColumn("name", typeof(string))); foreach (DataRowView drv in dv)
{
int m = 0;
string blank = "";
if (id != 0)
{
m = m + 1 + kg;
for (int i = 0; i < m; i++)
{
blank += "-";//空格 }
} DataRow dr1 = li.NewRow();
int j = 1;
dr1[0] = j++;
dr1[1] = blank + drv["name"].ToString();
li.Rows.Add(dr1); BindData(dt, Convert.ToInt32(drv["id"]), m);
} }将下面的代码放在一个按钮的单击事件中
DataTable li = new DataTable();
BindData(dt,0,0);
this.Repeater1.DataSource = li;
this.Repeater1.DataBind();
if(dt == null)DataTable li = new DataTable();
protected void Page_Load(object sender, EventArgs e) DataTable li = new DataTable();
DataTable dt = GetData();
BindData(dt, 0, 0);
this.Repeater1.DataSource = li;
this.Repeater1.DataBind();
}还是不行么
DataTable li = new DataTable();
DataTable dt = new datatable()
dt=GetData();
BindData(dt, 0, 0);
this.Repeater1.DataSource = li; //****师兄li表里没有数据啊.
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();