2014-11-25 32 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