基本上我试图做的是在循环中创建新的网格视图,然后数据用查询中的一组值绑定它们。
foreach ( var p in API.Query.GetAccoutsCustomers)
{
var tmpatagridView = new GridView();
Panel1.Controls.Add(tmpatagridView);
tmpatagridView.DataSource = API.Query.GetCustomerOrders(p.CusId);
tmpatagridView.DataBind();
}
GetCustomerOrders函数返回对象的对象列表:
orderNo cusCode cusName orderRef orderVal
我想将订单更改为链接到另一个页面的超链接,但我不确定如何在循环中创建GridView时以编程方式执行此操作。
答案 0 :(得分:1)
试试这个 -
foreach ( var p in API.Query.GetAccoutsCustomers)
{
var tmpatagridView = new GridView();
Dataset ds = API.Query.GetCustomerOrders(p.CusId);
dt = ds.Tables[0];
for (int i = 0; i < dt.Columns.Count; i++)
{
HyperLinkField hplnk = new HyperLinkField();
hplnk.DataTextField = dt.Columns[i].ColumnName.ToString();
hplnk.HeaderText = dt.Columns[i].ColumnName.ToString();
tmpatagridView.Columns.Add(hplnk);
}
tmpatagridView.DataSource = ds.Tables[0];
tmpatagridView.DataBind();
Panel1.Controls.Add(tmpatagridView);
}
答案 1 :(得分:0)
我认为你不是自动生成列。在这种情况下,您可以在网格中添加以下标记而不是orderid
:
<asp:HyperLinkField Text="Show Detail"
DataNavigateUrlFormatString="~/ShowEmployeeDetail.aspx?EmployeeID={0}"
DataNavigateUrlFields="EmployeeID" />