我一直在努力寻找某种方法来完成我所需的条件绑定。
我想在条件绑定中使用Eval("products_image")
,如果在images目录中存在product_image,那么就可以了,否则它应该显示“noimage.jpg”。
我试着这样做:
<%# (File.Exists(("ProductImages/"+Convert.ToString(Eval("products_image"))))) ? ("ProductImages/"+Convert.ToString(Eval("products_image"))) : "ProductImages/noimage_small.jpg" ; %>
我也尝试过其他方法,但每次都会遇到一堆错误。
有人能指导我做正确的方法吗?
答案 0 :(得分:1)
<%# (File.Exists(("ProductImages/"+Convert.ToString(Eval("products_image"))))) ? ("ProductImages/"+Convert.ToString(Eval("products_image"))) : "ProductImages/noimage_small.jpg" ; %>
相当长且不可读,不是吗?
我建议您在代码后面或<script>
代码
// returns the imageFile parameter if the file exists, the defaultFile parameter otherwise
string ImageFileExists(string imageFile, string defaultFile) {
if (File.Exists(Server.MapPath(imageFile)))
return imageFile;
else
return defaultFile;
}
然后你只需使用
<%# ImageFileExists("ProductImages/" + Eval("products_image").ToString(), "ProductImages/noimage_small.jpg") %>
请注意,我已对该方法添加Server.MapPath
次调用,以便File.Exists
实际上看起来正确。
答案 1 :(得分:0)
我只是将整个<script>
标记和System.IO
命名空间移动到usercontrol .ascx文件中,并且它已经完成了。
感谢配置程序寻求帮助:)