我正在动态构建DataTable,并且试图在要添加到DataTable的DataRow中添加“链接”。创建后,DataTable绑定到GridView。

像这样:

   DataTable dataTable = new DataTable();
   foreach (Item item in items)
    {
        DataRow row = dataTable.NewRow();
        dataTable.Columns.Add(new DataColumn("col"));

        row["col"] = "<a href='http://www.google.com'>Link here</a>";

        dataTable.Rows.Add(row);

    }


然后我将其绑定到GridView:

        <asp:GridView ID="grdView" Runat="server" border="0" EnableViewState="true" style="width:100%;"
            AutoGenerateColumns="true" AllowPaging="false" PagerSettings-Visible="false"
            ShowHeader="true" ShowFooter="true" CellPadding="0" CellSpacing="0"
            Visible="True">
        </asp:GridView>


但是,当我将Column中的HTML绑定到GridView时,它就会被编码。
有没有办法在其中添加HyperLink对象?

附言它不在示例中,而是动态添加列(这意味着在渲染之前我不知道我将拥有多少列)

更新#1

创建列时可以访问GridView。
我能够做这样的事情:

    dataTable.Columns.Add(new DataColumn("col"));

    BoundField bf = new BoundField();
    bf.HtmlEncode = false;
    bf.DataField = "col";
    grd.Columns.Add(bf);

   row["col"] = "<a href='http://www.google.com'>Link here</a>";


但它显示2列“ col” ...

更新#3:
我改用了DataGrid。当插入数据行的“纯文本”中时,它不会对HTML进行编码。

最佳答案

如果您要从查询返回html代码,只需在边界域上使用htmlEncode=False即可。还要在gridview上设置AutoGenerateColumns =“ false”,这就是为什么在gridview上获得双列的原因。

关于c# - 链接到DataRow(数据表),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4109021/

10-12 12:43
查看更多