【发布时间】:2009-11-30 11:58:06
【问题描述】:
我有一个问题希望有人能提供帮助。
我有一个动态的Gridview。我需要在 gridview 列上有一个hyperlink。这些超链接应该会打开一个弹出窗口以在点击时显示某些数据。
我通过使用动态模板字段进行了尝试。但即使在绑定数据时,我也无法获取该列的超链接。我可以获取数据,但不能获取超链接。
这是实现ITemplate 的HyperLinkTemplate 类。
public class HyperLinkTemplate : ITemplate
{
private string m_ColumnName;
public string ColumnName
{
get { return m_ColumnName; }
set { m_ColumnName = value; }
}
public HyperLinkTemplate()
{
//
// TODO: Add constructor logic here
//
}
public HyperLinkTemplate(string ColumnName)
{
this.ColumnName = ColumnName;
}
public void InstantiateIn(System.Web.UI.Control ThisColumn)
{
HyperLink HyperLinkItem = new HyperLink();
HyperLinkItem.ID = "hl" + ColumnName;
HyperLinkItem.DataBinding += HyperLinkItem_DataBinding;
ThisColumn.Controls.Add(HyperLinkItem);
}
private void HyperLinkItem_DataBinding(object sender, EventArgs e)
{
HyperLink HyperLinkItem = (HyperLink)sender;
GridViewRow CurrentRow = (GridViewRow)HyperLinkItem.NamingContainer;
object CurrentDataItem = DataBinder.Eval(CurrentRow.DataItem, ColumnName);
HyperLinkItem.Text = CurrentDataItem.ToString();
}
}
【问题讨论】: