簡體   English   中英

添加到數據表/ gridview的超鏈接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM