以编程方式将超链接添加到gridview以用于程序创建的网格视图

时间:2014-05-13 15:42:55

标签: c# asp.net

基本上我试图做的是在循环中创建新的网格视图,然后数据用查询中的一组值绑定它们。

    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时以编程方式执行此操作。

2 个答案:

答案 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" />