1、这是我的ListView中的字段。
<img width="50" height="40"  src='<%#ResolveClientUrl("~/Imagines/ProductsPic/"+Eval("FPicPath")) %>' runat="server"/>
<asp:HiddenField ID="HiddenField1" Value='<%#Bind("FPicPath") %>' runat="server" />
2、我这里通过普通的a传递给 FormView单独编辑,但我编辑的时候,如果在 FormView中选择图片,我就将图片名存储到数据库,当然,当用户再编辑的时候,如果不选图片,这时如果不处理,则图片为空,但是按理说图片应该为原来的值。
所以我就做一个隐藏字段,存储上一次的图片名(即为“1”中的hidden字段的value),郁闷的是,asp解析引擎解析到浏览器中的值不是我所需求的!
<input type="hidden" name="lvProducts$ctrl1$HiddenField1" id="lvProducts_HiddenField1_1" />
太奇怪了,许多浏览器都是这样,都不是我想要的结果!

解决方案 »

  1.   

    本来就会自己生成name和id。
    这个不影响你的使用。在后台可以用名字可以取到这个对象的。
      

  2.   

    你是说,在后台通过id找img这个对象是吧,之前我有试过这样,设置它的属性“src”···解析到浏览器的值是对的,但是图片无法显示···http://sharp.blog.163.com/blog/static/217658148201321193616555/
    大侠你的思想是这样的么?
      

  3.   

    需求很简单哈,需求你也看得懂了,
    就是说,然后再后台代码设置img的属性,asp.net解析到浏览器中的src属性,是对的,但是图片却无法显示!
    好奇怪,那你的想法不是说在后台代码获得img对象,设置src属性么
      

  4.   

    <asp:Image ID="Image1" runat="server" ImageUrl="./Image/Sunset.jpg" />
    为什么不这样用呢?
      

  5.   

    看了2遍,还是不大懂LZ的意思?
    是你自己设的控件id和在网页上看到的id不一样么?
    这个是正常的,你用微软的控件,生成的html的时候,id会加上自己的标识的。
      

  6.   

    id我懂,.netframework 4.5 后那个生成id的策略更难搞,也搞出bug。
    不懂我的意思么?
    是这样的,当我点击编辑时(主页面我在开始发帖时可见),是这样的(我就用图表示):当我选择图片的时候,这时FileUpload肯定有图片的地址,是吧,
    现在要解决的问题是,当用户第一次“添加”时有图片了,但是"编辑"的时候不动图片,这时就有问题了,asp.net引擎再次解析到浏览器时是空的,因为这时FileUpload为空值,但是在绑定的FormViewView的 UpdateTemplate中,是要传递参数过去的,所以如果不选的时候,默认就为空。
    所以我要做一个隐藏字段来存储上一次的值,然后,如果用户在更新时如果不选图片时(但是之前有图片),就应该设置图片的值为上次未更新前的值。
    是吧,我说的清楚了么?
      

  7.   

    但是貌似 ImageUrl的作用是帮助解析路径而已吧,但是我这里是数据绑定的,在ListView里面,是动态的,要在 每一个 Item中 绑定,不是死的。
    所以要'<%#Bind("PicName")%>',所以要保存“上一次的值”,不是静态图片。
      

  8.   

    asp.net是有ViewState的,用不着你自己发明一个不太成熟的东西。
      

  9.   

    现在的情况不是说找不到图片,而是要为 Item里面每个图片保存上次的值(即更新前的值),所以要是动态绑定的。所以每个Item中隐藏字段的功能是为其图片保存路径,纠结的是绑定的值到,asp.net解析到浏览器中的值变了。而我又不能设置自己添加的属性
      

  10.   

    我有想过ViewState,但是我觉得自己的隐藏字段不应该影响···