将超链接列从数据表添加到网格视图

本文关键字:网格 视图 添加 数据表 超链接 | 更新日期: 2023-09-27 18:31:46

我得到了这个:

public partial class VerAgenda : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {

            List<Funcion> fun = Festival.Instancia.ListaFunciones;
            DataTable dt = new DataTable();

            if (fun.Count() == 0)
                mensaje.InnerText = "No hay funciones disponibles";
            dt.Columns.Add(new DataColumn("Espectaculo", typeof(string)));
            dt.Columns.Add(new DataColumn("Fecha", typeof(string)));
            dt.Columns.Add(new DataColumn("Hora", typeof(string)));
            dt.Columns.Add(new DataColumn("Sala", typeof(string)));
            dt.Columns.Add(new DataColumn("Detalles", typeof(string)));
            foreach (Funcion f in fun)
            {
                string pais = "";
                while (pais == "")
                {
                    List<Espectaculo> esp = Festival.Instancia.ListaEspectaculos;
                    int es = 0;
                    while (es < esp.Count() && pais == "")
                    {
                        if (esp[es].Nombre == f.Espectaculo)
                            pais = esp[es].Pais;
                        es++;
                    }
                }
                string link = "test";
                dt.Rows.Add(f.Espectaculo, f.Fecha, f.HoraIni, pais, link);
                tblAgenda.DataSource = dt;
                tblAgenda.DataBind();
                this.tblAgenda.Visible = true;                

        }
    }
}

}

对于此标记:

   <asp:GridView ID="tblAgenda" runat="server">
   </asp:GridView>

花式,我知道。我需要知道如何向每一行添加一个 URL,根据列表上的详细信息对其进行格式化(即:"/xxx.aspx?funcion"+ funcion。IndexOf[f] + ".aspx" 或类似的东西。我认为那将是一个超链接列或其他东西,但我似乎无法使其工作。

这个想法是填充 GridView 服务器端...它现在对字符串工作正常。

我意识到这是一个新手最多的问题,但我真的很感激一些帮助......

提前谢谢。

将超链接列从数据表添加到网格视图

您需要

GridView中添加列并使用HyperLinkField,如下所示:

<asp:GridView ID="tblAgenda" runat="server" AutoGenerateColumns="false">
   <Columns>
         <asp:BoundField HeaderText="Name" DataField = "Name" />
         <asp:HyperLinkField DataTextField="Name" DataNavigateUrlFields="Id" DataNavigateUrlFormatString="~/xyz.aspx?Id={0}" HeaderText="Name"/>
        ----Other columns
   </Columns>
</asp:GridView>

编辑:

使用数据表绑定它,如下所示:-

DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name") });
dt.Rows.Add(1, "Pam);
dt.Rows.Add(2, "Richard");
dt.Rows.Add(3, "Mary");
tblAgenda.DataSource = dt;
tblAgenda.DataBind();