为通过编程方式创建的gridview添加超链接

本文关键字:gridview 添加 超链接 创建 方式 编程 | 更新日期: 2023-09-27 18:03:13

基本上我要做的是在一个循环中创建新的gridviews,然后将它们与一组来自查询的值进行数据绑定。

    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函数返回对象列表:

orderNocusCodecusNameorderReforderVal

我想改变顺序no到链接到另一个页面的超链接,但我不确定如何以编程方式做到这一点,因为GridView是在循环中创建的。

为通过编程方式创建的gridview添加超链接

试试这个-

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);
}

我假设您没有自动生成列。在本例中,您可以在网格中添加以下标记,而不是orderid:

<asp:HyperLinkField Text="Show Detail"
     DataNavigateUrlFormatString="~/ShowEmployeeDetail.aspx?EmployeeID={0}"
     DataNavigateUrlFields="EmployeeID" />