【发布时间】:2012-09-24 15:44:07
【问题描述】:
我正在从 EntityDataSource 构建一个 ListView。有一个名为 Sha1Hash 的 Byte[] 字段,我需要将其转换为超链接的字符串类型。这是来自 ItemTemplate 的代码 sn-p:
<asp:HyperLink ID="hl_Document" runat="server"
NavigateUrl='<%# string.Format("~/GetDocument.ashx?docId={0}", Eval("SHA1HASH") ) %>'
Text='<%# Eval("DOCUMENTNAME") %>' />
这会生成一个类似“~/GetDocument.ashx?docId=System.Byte[]”的 URL,但它必须是一个十六进制字符串,表示字节数组的值。实现这一目标的最佳方法是什么?理想情况下,我会完全在 .aspx 页面中完成此操作,而不是在后面的代码中。
更新:我通过使用解决了这个问题
NavigateUrl='<%# string.Format("~/GetDocument.ashx?docId={0}", BitConverter.ToString((byte[])Eval("SHA1HASH")).Replace("-", string.Empty) ) %>'
我的问题是我需要将 Eval() 转换为 byte[]。它被转换成字符串。
【问题讨论】:
标签: asp.net listview data-binding bytearray eval