【发布时间】:2019-05-06 07:25:57
【问题描述】:
我的场景是我正在动态创建一个数据表并将后者添加到数据集中并在网格视图中显示它。我想在每行的末尾添加一个“添加到图表”按钮,该按钮将具有其他功能。
我创建动态数据表的代码:
try
{
response = client.query(a);
///List of fields
var fields = response.@return.fields;
//loop through each column
foreach (String column in fields)
{
dtservice.Columns.Add(column);
}
///List of value return as list of object
var values = response.@return.values.ToList();
///get the first object from the list of object
foreach (object item in values)
{
if (item == null) continue;
foreach (PropertyInfo property in item.GetType().GetProperties())
{
// do something with the property
List<string> valueList = (List<string>)(property.GetValue(item, null));
dtservice.Rows.Add(valueList.ToArray());
}
}
}
catch (Exception error)
{
var b = error.ToString();
}
//create dataset
DataSet test= new DataSet();
test.Tables.Add(dtservice);
return test;
}
我尝试过使用下面的代码,但是点击后按钮消失了。
protected void WorkList_RowDataBound(object sender, GridViewRowEventArgs e)
{
// CHECK IF ROW IS NOT IN EDIT MODE
if (e.Row.RowType == DataControlRowType.DataRow)
{
// CREATE A Button
Button btn = new Button();
btn.ID = "btnEstados";
btn.Text = "Estados";
// ADD BUTTON TO EACH ROW IN 2ND COLUMN
e.Row.Cells[7].Controls.Add(btn);
}
}
第二个问题现在我能够在每一行上获得按钮,但是使用下面的代码,我得到的列数等于 1。它实际上只读取 html 中添加的静态列,而不是生成的列动态的。
//adding column to datatable
for (int row = 0; row < test.Columns.Count - 1; row++)
{
ServiceName.Columns.Add(test.HeaderRow.Cells[row].Text, typeof(string));
}
【问题讨论】:
-
显示你的html代码
标签: c# asp.net gridview webforms