我想使用灯箱。图像在VB.NET(database-sqlserver)中从后端绑定。
这是位于datalist控制器内的HTML:
<a href='<%# Eval("images")%>' rel="lightbox[Brussels]">
<img alt="" src='<%# Eval("images")%>' height="150" width="150" class=" img img-thumbnail" />
</a>
我没有存储图像文件路径。只需将图像存储在 varbinary(max)中,不能给出Link的 href 属性。
我通过 dataurl 引用了超链接 href 属性。它的值是 base64
dr("images") = "data:Image/png;base64," & Convert.ToBase64String(imgbyte)
其中 imgbyte 是字节数组()。
每当我点击图像(从数据库中绑定)时,它应该使用Lightbox进入前面。 但问题是激动,因为图像弹出是部分清晰或30%清晰的休息模糊或根本没有。不知道确切的原因?
我在某处读过Internet Explorer 6或7没有使用dataurl。它可以显示高达32kb的图像。但是我已经在IE11中检查了它。它不起作用。
我们怎样才能在LightBox中使用dataurl显示大尺寸的图像?
我们怎样才能实现这个目标?
答案 0 :(得分:0)
我看到的唯一方法是实现一个自定义端点,比如说Generic Handler或更加量身定制的端点,它通过提供相应图像的标识符来返回正确的二进制流。
例如
/MyCustomImageProvider.ashx?Id=1
此端点可通过URL访问,此类URL可以提供给LightBox,同时保持图像存储在表而不是物理文件中。
最后,您的aspx代码可能类似于以下
<a href='<%# Eval("images")%>' rel="lightbox[Brussels]">
<img alt="" src="/MyCustomImageProvider.ashx?Id=<%# Eval("imageId")%>" height="150" width="150" class=" img img-thumbnail" />
</a>