Click here to Skip to main content
14,167,095 members
Rate this:
 
Please Sign up or sign in to vote.
See more:
I am writing a page where users can update their profile for a simple chat board. There is an asp:Image control which is loaded with the user's current avatar. On the same page is a list of available avatar images; each is a standard HTML img tag with the following attribute:
onclick='setAvatar(this);'

The function itself looks like this:
function setAvatar(e) {
    var file = e.getAttribute('src');
    var img = document.getElementById('ctl00_ContentHolder_UserAvatar');
    img.src = file;
    return true;
}
In this script, file is the src attribute for the stock image being clicked, and img is the asp:Image control that displays the current or newly selected avatar image. This all works fine and dandy: clicking on a stock image changes the image displayed on the control.

My problem occurs when the user clicks the Save button and a postback occurs. Because the change is made in the browser, it is not reflected in the ViewState and so gets lost.

What I want is to let the user select an image and then update his profile with only the single postback that happens when clicking Save. Is there any way I can get there?
Posted
Comments
   
So, basically the new image source(selected by user) gets lost after post back, right?
I mean you can't access the new source in the code behind, that's the problem, right?

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

I guess the questions I have asked will get me a reply as yes.

So, coming to the problem, I strongly believe that there is no such direct method to reflect the src attribute changes done at client side to server side when you do PostBack.

Instead use one HiddenField, in which you can store that same src Url.
Then the value of that HiddenField can be accessed easily at the server side after PostBack.
Comments
Gregory Gadow 5-Jun-13 9:34am
   
Yup, got it working now. I poked around CP and couldn't find a solution which is why I asked the question; I may post my code as a tip here so others can find it. Thanks!
   
Most Welcome. My Pleasure... :)

Yes, you should add a Tip for sure. Thanks for accepting and up-voting.
   
Yes, nicely done... Cheers. I have rated 5 stars.
Many thanks for mentioning my name.

Can I request something to you?
Can you just link my name there in the tip, to my Code Project profile and also refer this answer?

I hope you understand me. It's fine if there is any problem.

Regards,
Tadit
Gregory Gadow 5-Jun-13 12:28pm
   
I linked you on the article; this time it stuck.
   
Thanks a lot for that... :) Stuck? Any problem?
Gregory Gadow 5-Jun-13 12:42pm
   
No problem other than my thinking I had linked you on the first go-around :)
   
Oh.. Fine. Thanks again Gregory. :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Cookies | Terms of Service
Web05 | 2.8.190518.1 | Last Updated 5 Jun 2013
Copyright © CodeProject, 1999-2019
All Rights Reserved.
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100