我动态创建gridview
...现在我想在其中添加一些按钮,并添加相关的rowCommand事件。请帮我这样做。这就是我在代码中动态创建GridView的方法
for (int i = 0; i < dtEmployees.Rows.Count; i++)
{
TableRow tr = new TableRow();
TableCell tc = new TableCell();
GridView gv = new GridView();
gv.ID = "gv" + dtTasks.Rows[i]["TaskID"].ToString() + dtEmployees.Rows[i]["EmpID"].ToString();
DataTable dt = dtTasks.Clone();
foreach (DataRow dr in dtTasks.Rows)
{
if (dr["EmpID"].ToString() == dtEmployees.Rows[i]["EmpID"].ToString())
{
dt.Rows.Add(dr.ItemArray);
}
}
gv.DataSource = dt;
gv.DataBind();
tc.Controls.Add(gv);
tr.Cells.Add(tc);
tblMain.Rows.Add(tr);
}
答案 0 :(得分:1)
虽然我不测试它,但逻辑上它将如下:
if(e.Row.RowIndex > -1)
{
Button button = new Button();
button.CommandArgument = dt.Rows[e.Row.RowIndex][i].ToString();
button.Attributes.Add("OnClick", "button_Clicked");
e.Row.Cells[i].Controls.Add(button);
}
其中e为GridViewRowEventArgs
。这些代码将放在您的for/foreach
循环中。可能就像..
for (int i = 0; i < gv.Rows.Count; i++)
然后创建按钮事件处理程序:
protected void button_Clicked(object sender, EventAgrs e)
{
if (sender is Button)
{
try
{
String value = ((Button)sender).CommandArgument;
}
catch
{
//Check for exception
}
}
}
也可以查看..
答案 1 :(得分:0)
我知道你这样做是因为你在几个月之前问过,但我刚回答了那些研究这一点的人。
只需在显示的功能中执行此操作:
DataGridViewButtonColumn col = new DataGridViewButtonColumn();
col.UseColumnTextForButtonValue = true;
col.Text = "ADD";
col.Name = "MyButton";
dataGridView1.Columns.Add(col);