下面是我在程序中的代码:
asp.net 页面的内容:
<SELECT id="facename" onchange="window.document.images['userFace'].src = options[selectedIndex].value;">
<OPTION value="pic/userface/Image11.gif" selected>默认</OPTION>
<OPTION value="pic/userface/Image1.gif">头像1</OPTION>
<OPTION value="pic/userface/Image2.gif">头像2</OPTION>
</SELECT><asp:Image id="userFace" runat="server" ImageUrl="pic/userface/Image1.gif"></asp:Image>aspx.cs 文件:
 string userface = userFace.ImageUrl.ToString(); //用户头像我的目的:当使用select选择不同的option时 使控件image的地址能够改变并且存储到数据库中,但是在实际应用中image的url地址一直保持pic/userface/Image1.gif不变!!也就是存入数据库的地址不会改变
这是为什么呀,应该怎样更改,还有没有其它更好的方法呀?
那位高手帮帮忙谢谢,急用

解决方案 »

  1.   

    <asp:Image控件的ImageUrl属性并没有纳入ViewState机制,也就是说,回传后都恢复为初始值了,解决方法是在页面上方一个<input type="hidden" id="Hid1" runat="server">
    <SELECT id="facename" onchange="window.document.images['userFace'].src = options[selectedIndex].value;window.document.all['Hid1'].value= options[selectedIndex].value;">最后,要保存实际url的话就取string tmp = Hid1.Value;
      

  2.   

    用dropdownlist好点,在选择的触发事件中,写入数据库
      

  3.   

    也就是不再使用image控件吗,只使用input控件?即下面的方式<SELECT  id=  "facename  "  onchange=  "window.document.all['Hid1'].value=  options[selectedIndex].value; ">  
      

  4.   

    客户端没回传怎么能改变服务器端控件的属性用dropdownlist吧
    1.服务器端更改图片地址,属性加AutoPostBack="true" OnSelectedIndexChanged="后台函数"
    2.客户端更改,用javascript,不过再dropdownlist上绑定javascript函数有点麻烦
      

  5.   

    在Page_Load里对dropdownlist绑定javascript好象是不行
    不过有种方法是,如果你的list item不多并且是固定的话,可以在listitem里直接写
    <asp:ListItem Value="aa" Text="aa" onclick="bbb(aa)"></asp:ListItem>javascript:function bbb(test){
      document.all("<%=userFace.ClientID%>").value=test
    }