我有一个Kendo网格,如果图像存储在我的机器中,则可以在列上正确显示图像。
@(Html.Kendo().Grid<ProjectName.Models.SomeModel>()
.Name("grid")
.Columns(columns =>
{
...
columns.Bound(c => c.Image).ClientTemplate("<img src='c:/pics/" + "#=Image#' alt='image' Title='image' height='24'/>").Title("Image");
})
因此,这会在路径c:/pics
中正确显示存储在本地硬盘上的图像。但现在我需要显示存储在特定服务器中的图像,而不是我机器中的c:/pics
文件夹。
我试过在这里替换这个位:
src='c:/pics/"
使用以下选项:
src='\\999.99.99.999\ProjectName\Images\'
src='\\\\999.99.99.999\\ProjectName\\Images\\'
src='http://999.99.99.999/ProjectName/Images/'
src='999.99.99.999/ProjectName/Images/'
但它们都不起作用。
*请注意,999.99.99.999是假人,我在那里插入真正的IP。
如何为另一台机器的IP地址设置图像源?
修改
如果我在View的任何其他部分都有图像标记,它可以正常工作,如下所示:
<img src="\\999.99.99.999\ProjectName\Images\somepic.jpg" alt="whatever" />
但是在网格列的ClientTemplate
内,我得到了反斜杠的错误,这也是我尝试使用双反斜杠的原因。
答案 0 :(得分:1)
你是否尝试过将这样的javascript拉出来对你有用:
由此:
columns.Bound(c => c.Image).ClientTemplate("<img src='c:/pics/" + "#=Image#' alt='image' Title='image' height='24'/>").Title("Image");
To This:
columns.Bound(c => c.Image).ClientTemplate("#=GetMyImage(data.Image)#").Title("Image");
然后有一个javascript函数为你构建图像。
<script>
function GetMyImage(image)
{
var returnString = 'No Image Found';
//just checking to see if we have a name for the image
if(image !== null && image.length > 0)
{
returnString = '<img src="{Your server details here}\" + image + '" title="image" height="24" alt="image"/>;
return returnString;
}
}
</script>
如果我想通过客户端模板化Kendo网格做一些更有创意的事情,这通常就是我的工作。