[英]Add a hyperlink to a datatable / gridview
我確定以前曾經問過,但我找不到合適的答案。
我正在動態創建數據表並使用它來填充Web控件gridview ...
我想知道是否或如何將1列(URL)更改為超鏈接?
我創建數據表的代碼:
private DataTable CreateDataTable()
{
DataTable myDataTable = new DataTable();
DataColumn myDataColumn;
myDataColumn = new DataColumn();
myDataColumn.DataType = Type.GetType("System.String");
myDataColumn.ColumnName = "Title";
myDataTable.Columns.Add(myDataColumn);
myDataColumn = new DataColumn();
myDataColumn.DataType = Type.GetType("System.String");
myDataColumn.ColumnName = "URL";
myDataTable.Columns.Add(myDataColumn);
.
.
.
}
我正在添加數據表如下:
private void AddDataToTable(string title, string strLink......
{
DataRow row = myTable.NewRow();
row["Title"] = title;
row["URL"] = strLink;
.
.
.
然后將數據表綁定到gridview:
datagrid.DataSource = ((DataTable)Session["myDatatable"]).DefaultView;
datagrid.DataBind();
您不會在Datatable中執行此操作 - 這只是數據的內存中表示。 它沒有關於網格視圖中列類型的任何內容。
一旦它在DataGridView中,只需將列類型設置為DataGridViewLinkColumn 。
你可以做
row["URL"] = "<a href='www.stackoverflow.com'>Stack Overflow</a>";
但是你應該在GridView上使用BoundField,並設置HtmlEncode="false"
:
<asp:BoundField DataField="URL" HtmlEncode="false" HeaderText="URL" HeaderStyle-Wrap="false" SortExpression="URL">
<ItemStyle Width="25% />
</asp:BoundField>
當您綁定到gridview或Detail視圖時,U可以將超鏈接控件添加到url列(模板字段)並進行設置
NavigateUrl='<%# Eval("URL")%>'
要么
如果你想導航到谷歌等其他網站,請設置
NavigateUrl='<%# String.Format("http://{0}", Eval("URL")) %>'
...... :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.