展开全部
因为你还要要给生成的按钮注册 查询事件,推荐你使用数据控件;
不过使用表格和自定义按钮,也可以实现。
public partial class _default : System.Web.UI.Page
{
string connstr = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
connstr = ConfigurationManager.AppSettings["connstr"];
Maticsoft.DBUtility.DbHelperSQL.connectionString = connstr;
string sql="select * from Person ";
DataSet ds = Maticsoft.DBUtility.DbHelperSQL.Query(sql);
Bindtable(ds,testTab);
}
static void Bindtable(DataSet ds, Table testTab)
{
int colsCount = ds.Tables[0].Columns.Count;
int rowsCount = ds.Tables[0].Rows.Count;
DataTable dt = ds.Tables[0];
for (int j = 0; j < rowsCount; j++)
{
TableRow tbRow = new TableRow();
for (int k = 0; k < colsCount; k++)
{
if (k==1)
{
TableCell cell = new TableCell();
Button button = new Button();
button.Text = dt.Rows[j][k].ToString();
button.CommandArgument = dt.Rows[j][k].ToString();
button.CommandName = dt.Rows[j][k-1].ToString();
button.Command+=new CommandEventHandler(button_Command);
cell.Controls.Add(button);
tbRow.Cells.Add(cell);
}
else
{
TableCell cell = new TableCell();
cell.Text = dt.Rows[j][k].ToString();
tbRow.Cells.Add(cell);
}
}
testTab.Rows.Add(tbRow);
}
}
static void button_Command(object sender, CommandEventArgs e)
{
string comName = e.CommandName;
string comArg = e.CommandArgument.ToString();
//对 获取的数据做进一步处理
}
}
追问
可以帮在一些关键点写一点注释吗?我再加10分
追答
TableCell cell = new TableCell();
//创建 按钮对象
Button button = new Button();
//按妞显示的文字赋值
button.Text = dt.Rows[j][k].ToString();
//服务器控件的 CommandArgument、CommandName 可以传递自定义值,
//用来在 该控件单击时 触发自身的Command事件 时再通过 CommandEventArgs e 获取。
button.CommandArgument = dt.Rows[j][k].ToString();
button.CommandName = dt.Rows[j][k-1].ToString();
//注册按钮的 command事件
button.Command+=new CommandEventHandler(button_Command);
//单元格对象的 加入按钮对象
cell.Controls.Add(button);
//行对象加入单元格
tbRow.Cells.Add(cell);
代码的大体意思就是那,功能实现绝对没问题;建议你照着敲一遍代码,不懂得,鼠标移上去,vs会提示大致是什么意思。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询