条件数据绑定的难度

时间:2009-09-20 02:53:33

标签: c# asp.net data-binding binding conditional

我一直在努力寻找某种方法来完成我所需的条件绑定。

我想在条件绑定中使用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" ; %>

我也尝试过其他方法,但每次都会遇到一堆错误。

有人能指导我做正确的方法吗?

2 个答案:

答案 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文件中,并且它已经完成了。

感谢配置程序寻求帮助:)