现在页面上已经有一个table,包含两个行tr1和tr2,现要在每个行中要动态生成若干个单元格,每个单元格中动态生成一个控件LinkButton;现希望实现当LinkButton的数量<6时,生成的单元格在tr1行中,当>=6时生成控件在tr2行中,曾尝试多次均失败,请问各位高手能否指点一下,其相关代码如下: cmd = new SqlCommand("select TagName from Blog_MySubject where ReaderID='"+name+"' order by TagID desc ",conn);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
conn.Close();
int index=0;
//---------------------------------acquire Blog_MySubject------------------------------------//
// while (index <= 10)
// {
// if (index % 2 == 0)
// { HtmlTableRow mytr1 = new HtmlTableRow();
TagRow.Rows.Add(mytr1);
foreach (DataRow row in ds.Tables[0].Rows)
{
string tagstr = row["TagName"].ToString();
create_button(tagstr, index, mytr1);
index++; }
// }
/* else
{
HtmlTableRow mytr2 = new HtmlTableRow();
TagRow.Rows.Add(mytr2);
foreach (DataRow row in ds.Tables[0].Rows)
{
string tagstr = row["TagName"].ToString();
create_button(tagstr, index, mytr2);
index++;
} }*/
//}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public void create_button(string tagname,int i,HtmlTableRow tr)
{
HtmlTableCell td = new HtmlTableCell();
tr.Cells.Add(td);
td.Align = "left";
LinkButton lbt = new LinkButton();
lbt.ID = "lbt"+i;
lbt.Text = tagname;
td.Controls.Add(lbt);
string teststr = lbt.ID;
if(i==0)
{
lbt.CommandName = "onclick0"; lbt.Click += new System.EventHandler(this.lbt0_click);
} if(i==1)
{
lbt.CommandName = "onclick1";
lbt.Click+=new System.EventHandler(this.lbt1_click);
}
if(i== 2)
{
lbt.CommandName = "onclick2";
lbt.Click+=new System.EventHandler(this.lbt2_click);
}
if(i==3)
{
lbt.CommandName = "onclick3";
lbt.Click += new System.EventHandler(this.lbt3_click);
}
if(i==4)
{
lbt.CommandName = "onclick4";
lbt.Click += new System.EventHandler(this.lbt4_click);
}
if(i==5)
{
lbt.CommandName = "onclick5";
lbt.Click+=new System.EventHandler(this.lbt5_click);
}
if(i==6)
{
lbt.CommandName = "onclick6";
lbt.Click+=new System.EventHandler(this.lbt6_click);
}
if (i == 7)
{
lbt.CommandName = "onclick7";
lbt.Click+=new System.EventHandler(this.lbt7_click);
}
}
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
conn.Close();
int index=0;
//---------------------------------acquire Blog_MySubject------------------------------------//
// while (index <= 10)
// {
// if (index % 2 == 0)
// { HtmlTableRow mytr1 = new HtmlTableRow();
TagRow.Rows.Add(mytr1);
foreach (DataRow row in ds.Tables[0].Rows)
{
string tagstr = row["TagName"].ToString();
create_button(tagstr, index, mytr1);
index++; }
// }
/* else
{
HtmlTableRow mytr2 = new HtmlTableRow();
TagRow.Rows.Add(mytr2);
foreach (DataRow row in ds.Tables[0].Rows)
{
string tagstr = row["TagName"].ToString();
create_button(tagstr, index, mytr2);
index++;
} }*/
//}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public void create_button(string tagname,int i,HtmlTableRow tr)
{
HtmlTableCell td = new HtmlTableCell();
tr.Cells.Add(td);
td.Align = "left";
LinkButton lbt = new LinkButton();
lbt.ID = "lbt"+i;
lbt.Text = tagname;
td.Controls.Add(lbt);
string teststr = lbt.ID;
if(i==0)
{
lbt.CommandName = "onclick0"; lbt.Click += new System.EventHandler(this.lbt0_click);
} if(i==1)
{
lbt.CommandName = "onclick1";
lbt.Click+=new System.EventHandler(this.lbt1_click);
}
if(i== 2)
{
lbt.CommandName = "onclick2";
lbt.Click+=new System.EventHandler(this.lbt2_click);
}
if(i==3)
{
lbt.CommandName = "onclick3";
lbt.Click += new System.EventHandler(this.lbt3_click);
}
if(i==4)
{
lbt.CommandName = "onclick4";
lbt.Click += new System.EventHandler(this.lbt4_click);
}
if(i==5)
{
lbt.CommandName = "onclick5";
lbt.Click+=new System.EventHandler(this.lbt5_click);
}
if(i==6)
{
lbt.CommandName = "onclick6";
lbt.Click+=new System.EventHandler(this.lbt6_click);
}
if (i == 7)
{
lbt.CommandName = "onclick7";
lbt.Click+=new System.EventHandler(this.lbt7_click);
}
}
{
SqlConnection conn = new SqlConnection(@"server=.\sqlexpress;uid=sa;pwd=;database=northwind");
// cmd = new SqlCommand("select TagName from Blog_MySubject where ReaderID='" + name + "' order by TagID desc ", conn);
SqlDataAdapter da = new SqlDataAdapter("select productName as TagName from Products", conn);
DataSet ds = new DataSet();
conn.Open();
da.Fill(ds);
conn.Close();
int index = 0; HtmlTableRow mytr1 = new HtmlTableRow();
foreach (DataRow row in ds.Tables[0].Rows)
{
string tagstr = row["TagName"].ToString();
create_button(tagstr, index, mytr1);
index++;
if (index > 5)
break;
}
HtmlTableRow mytr2 = new HtmlTableRow();
foreach (DataRow row in ds.Tables[0].Rows)
{
string tagstr = row["TagName"].ToString();
create_button(tagstr, index, mytr2);
index++;
if (index > 11)
break;
}
TagRow.Rows.Add(mytr1);
TagRow.Rows.Add(mytr2); }public void create_button(string tagname, int i, HtmlTableRow tr)
{
LinkButton lbt = new LinkButton();
lbt.ID = "lbt" + i;
lbt.Text = tagname;
lbt.CommandName = "onclick" + i.ToString();
lbt.Click += new EventHandler(lbt_Click); HtmlTableCell td = new HtmlTableCell();
td.Controls.Add(lbt);
td.Align = "left";
tr.Cells.Add(td);
}void lbt_Click(object sender, EventArgs e)
{
Response.Write((sender as LinkButton).CommandName);
}
foreach( DataCell column in row.Cells ) //行中的每个元素
foreach(DataColumn dc in dr.Table.Columns)
已经试过了,两行创建的LinkButton完全相同,即数据库中的字段,只有1-6被显示出来。
foreach (DataRow row in ds.Tables[0].Rows) ///因为两次循环迭代都是从初始记录0行开始读的,
你改成FOR语句控制循环,和初始行索引值.