[英]How to make any column hyperlinked in dynamic gridview , where that hyperlink column is linked to another gridview
[英]How to add a Hyperlink to a dynamic gridview column
我有一個問題希望有人可以提供幫助。
我有一個動態的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();
}
}
我不完全確定我理解你要完成的任務,但我認為你不應該為此建立自己的模板類。
除了我在想的“動態網格視圖”這個術語之外,你可能會想到一些其他的東西,但如果你需要在GridView的列的每一行中添加一個超鏈接,如果你需要在代碼隱藏中執行此操作,那么我建議處理GridView的RowDataBound事件並在事件處理程序中執行以下操作:
protected void grdData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink link = new HyperLink();
link.Text = "This is a link!";
link.NavigateUrl = "Navigate somewhere based on data: " + e.Row.DataItem;
e.Row.Cells[ColumnIndex.Column1].Controls.Add(link);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.