2014-11-25 24 views
0

添加一个超链接列到GridView我得到这个:从数据表

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”+ fun.IndexOf [f] +“.aspx”或类似的东西。那将是一个HyperLinkColumn或东西,但我似乎无法使它工作。

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

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

在此先感谢。

回答

1

你需要列添加到您的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(); 
+0

酷,谢谢...但如何获得DataNavigateUrlFormatString从变量中获取?这不是从数据库,只是一个数据表...我的意思是,从C#代码? – 2014-11-25 05:18:58

+0

@dumber_than_thou - 请检查我的更新。 – 2014-11-25 05:27:44

+0

好的...所以我得到了一个链接。但我仍然没有得到如何将该变量传递给该字段...我的意思是,NavigateUrl部分,现在无法让它工作... – 2014-11-25 05:37:42