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" />
太奇怪了,许多浏览器都是这样,都不是我想要的结果!
<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" />
太奇怪了,许多浏览器都是这样,都不是我想要的结果!
这个不影响你的使用。在后台可以用名字可以取到这个对象的。
大侠你的思想是这样的么?
就是说,然后再后台代码设置img的属性,asp.net解析到浏览器中的src属性,是对的,但是图片却无法显示!
好奇怪,那你的想法不是说在后台代码获得img对象,设置src属性么
为什么不这样用呢?
是你自己设的控件id和在网页上看到的id不一样么?
这个是正常的,你用微软的控件,生成的html的时候,id会加上自己的标识的。
不懂我的意思么?
是这样的,当我点击编辑时(主页面我在开始发帖时可见),是这样的(我就用图表示):当我选择图片的时候,这时FileUpload肯定有图片的地址,是吧,
现在要解决的问题是,当用户第一次“添加”时有图片了,但是"编辑"的时候不动图片,这时就有问题了,asp.net引擎再次解析到浏览器时是空的,因为这时FileUpload为空值,但是在绑定的FormViewView的 UpdateTemplate中,是要传递参数过去的,所以如果不选的时候,默认就为空。
所以我要做一个隐藏字段来存储上一次的值,然后,如果用户在更新时如果不选图片时(但是之前有图片),就应该设置图片的值为上次未更新前的值。
是吧,我说的清楚了么?
所以要'<%#Bind("PicName")%>',所以要保存“上一次的值”,不是静态图片。