我明白了:
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服务器端...它现在适用于字符串。
我意识到这是一个最新手的问题,但我真的很感激一些帮助...
提前致谢。
答案 0 :(得分: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绑定它,如下所示: -
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();