Tuesday, March 13, 2012

Swapping Image Url

In an aspx page I have declared an Image control:
<asp:Image id="myImage" runat="server"></asp:Image
In the code-behind I populate it's ImageURL property, like this:
myImage.ImageUrl = "some.gif";

Then, in client-side JavaScript, the user can cause the image to be
replaced, like this:
document.all("myImage").src = "other.gif";

Here's the problem: on postback, the image control's .ImageUrl property
still contains "some.gif" and not "other.gif" as I am needing.

What do I need to do to receive - during postback - the value set in the
client by the JavaScript?

Thanks!After postback, the value of ImageUrl is coming from the control's ViewState.

One solution would be to set the value of a hidden field when you set the
image's src attribute. The value of the hidden field will get posted back
correctly.

"Guadala Harry" wrote:

> In an aspx page I have declared an Image control:
> <asp:Image id="myImage" runat="server"></asp:Image>
> In the code-behind I populate it's ImageURL property, like this:
> myImage.ImageUrl = "some.gif";
> Then, in client-side JavaScript, the user can cause the image to be
> replaced, like this:
> document.all("myImage").src = "other.gif";
> Here's the problem: on postback, the image control's .ImageUrl property
> still contains "some.gif" and not "other.gif" as I am needing.
> What do I need to do to receive - during postback - the value set in the
> client by the JavaScript?
> Thanks!
>
>
Thanks - I thought about going the hidden field route - but was hoping for
some solution that wouldn't require adding another field or control that
needs synchronizing with the original Image control.

Any other ideas?

Thanks again...

-G

"Brad Quinn" <BradQuinn@.discussions.microsoft.com> wrote in message
news:E07F8EE9-B35D-488C-A2A9-CB60DCA6AACD@.microsoft.com...
> After postback, the value of ImageUrl is coming from the control's
ViewState.
> One solution would be to set the value of a hidden field when you set the
> image's src attribute. The value of the hidden field will get posted back
> correctly.
> "Guadala Harry" wrote:
> > In an aspx page I have declared an Image control:
> > <asp:Image id="myImage" runat="server"></asp:Image>
> > In the code-behind I populate it's ImageURL property, like this:
> > myImage.ImageUrl = "some.gif";
> > Then, in client-side JavaScript, the user can cause the image to be
> > replaced, like this:
> > document.all("myImage").src = "other.gif";
> > Here's the problem: on postback, the image control's .ImageUrl property
> > still contains "some.gif" and not "other.gif" as I am needing.
> > What do I need to do to receive - during postback - the value set in the
> > client by the JavaScript?
> > Thanks!
Can you make the code in your codebehind only execute the first time it
executes? i.e.

if (!Page.IsPostback)
myImage.ImageUrl = "some.gif";

Toby Mathews

"Guadala Harry" <GMan@.NoSpam.com> wrote in message
news:%23wqVQXQgEHA.2908@.TK2MSFTNGP10.phx.gbl...
> Thanks - I thought about going the hidden field route - but was hoping for
> some solution that wouldn't require adding another field or control that
> needs synchronizing with the original Image control.
> Any other ideas?
> Thanks again...
> -G
>
> "Brad Quinn" <BradQuinn@.discussions.microsoft.com> wrote in message
> news:E07F8EE9-B35D-488C-A2A9-CB60DCA6AACD@.microsoft.com...
> > After postback, the value of ImageUrl is coming from the control's
> ViewState.
> > One solution would be to set the value of a hidden field when you set
the
> > image's src attribute. The value of the hidden field will get posted
back
> > correctly.
> > "Guadala Harry" wrote:
> > > In an aspx page I have declared an Image control:
> > > <asp:Image id="myImage" runat="server"></asp:Image>
> > > > In the code-behind I populate it's ImageURL property, like this:
> > > myImage.ImageUrl = "some.gif";
> > > > Then, in client-side JavaScript, the user can cause the image to be
> > > replaced, like this:
> > > document.all("myImage").src = "other.gif";
> > > > Here's the problem: on postback, the image control's .ImageUrl
property
> > > still contains "some.gif" and not "other.gif" as I am needing.
> > > > What do I need to do to receive - during postback - the value set in
the
> > > client by the JavaScript?
> > > > Thanks!
> > > >
That's not really relevant to the problem - it would be IF there was an
issue with postback processing walking on the value set in the client - but
issue is that the value set in the client code is never making it to the
server (unless I explicitly stuff the value into a hidden field - which I
don't want to do unless I really must).

Thanks anyway.

"Toby Mathews" <tobymathewsNOSPAM@.yahoo.spamfree.co.uk> wrote in message
news:cfhs1q$87n$1@.thorium.cix.co.uk...
> Can you make the code in your codebehind only execute the first time it
> executes? i.e.
> if (!Page.IsPostback)
> myImage.ImageUrl = "some.gif";
> Toby Mathews
> "Guadala Harry" <GMan@.NoSpam.com> wrote in message
> news:%23wqVQXQgEHA.2908@.TK2MSFTNGP10.phx.gbl...
> > Thanks - I thought about going the hidden field route - but was hoping
for
> > some solution that wouldn't require adding another field or control that
> > needs synchronizing with the original Image control.
> > Any other ideas?
> > Thanks again...
> > -G
> > "Brad Quinn" <BradQuinn@.discussions.microsoft.com> wrote in message
> > news:E07F8EE9-B35D-488C-A2A9-CB60DCA6AACD@.microsoft.com...
> > > After postback, the value of ImageUrl is coming from the control's
> > ViewState.
> > > > One solution would be to set the value of a hidden field when you set
> the
> > > image's src attribute. The value of the hidden field will get posted
> back
> > > correctly.
> > > > "Guadala Harry" wrote:
> > > > > In an aspx page I have declared an Image control:
> > > > <asp:Image id="myImage" runat="server"></asp:Image>
> > > > > > In the code-behind I populate it's ImageURL property, like this:
> > > > myImage.ImageUrl = "some.gif";
> > > > > > Then, in client-side JavaScript, the user can cause the image to be
> > > > replaced, like this:
> > > > document.all("myImage").src = "other.gif";
> > > > > > Here's the problem: on postback, the image control's .ImageUrl
> property
> > > > still contains "some.gif" and not "other.gif" as I am needing.
> > > > > > What do I need to do to receive - during postback - the value set in
> the
> > > > client by the JavaScript?
> > > > > > Thanks!
> > > > > > > >
Harry,

Sorry, I didn't read your message properly first time round. I'm not sure
how else you could achieve what you want to do other than how you decribe.
Good luck,

Toby

"Guadala Harry" <GMan@.NoSpam.com> wrote in message
news:%23Tkt9DRgEHA.1048@.tk2msftngp13.phx.gbl...
> That's not really relevant to the problem - it would be IF there was an
> issue with postback processing walking on the value set in the client -
but
> issue is that the value set in the client code is never making it to the
> server (unless I explicitly stuff the value into a hidden field - which I
> don't want to do unless I really must).
> Thanks anyway.
>
> "Toby Mathews" <tobymathewsNOSPAM@.yahoo.spamfree.co.uk> wrote in message
> news:cfhs1q$87n$1@.thorium.cix.co.uk...
> > Can you make the code in your codebehind only execute the first time it
> > executes? i.e.
> > if (!Page.IsPostback)
> > myImage.ImageUrl = "some.gif";
> > Toby Mathews
> > "Guadala Harry" <GMan@.NoSpam.com> wrote in message
> > news:%23wqVQXQgEHA.2908@.TK2MSFTNGP10.phx.gbl...
> > > Thanks - I thought about going the hidden field route - but was hoping
> for
> > > some solution that wouldn't require adding another field or control
that
> > > needs synchronizing with the original Image control.
> > > > Any other ideas?
> > > > Thanks again...
> > > > -G
> > > > > > "Brad Quinn" <BradQuinn@.discussions.microsoft.com> wrote in message
> > > news:E07F8EE9-B35D-488C-A2A9-CB60DCA6AACD@.microsoft.com...
> > > > After postback, the value of ImageUrl is coming from the control's
> > > ViewState.
> > > > > > One solution would be to set the value of a hidden field when you
set
> > the
> > > > image's src attribute. The value of the hidden field will get
posted
> > back
> > > > correctly.
> > > > > > "Guadala Harry" wrote:
> > > > > > > In an aspx page I have declared an Image control:
> > > > > <asp:Image id="myImage" runat="server"></asp:Image>
> > > > > > > > In the code-behind I populate it's ImageURL property, like this:
> > > > > myImage.ImageUrl = "some.gif";
> > > > > > > > Then, in client-side JavaScript, the user can cause the image to
be
> > > > > replaced, like this:
> > > > > document.all("myImage").src = "other.gif";
> > > > > > > > Here's the problem: on postback, the image control's .ImageUrl
> > property
> > > > > still contains "some.gif" and not "other.gif" as I am needing.
> > > > > > > > What do I need to do to receive - during postback - the value set
in
> > the
> > > > > client by the JavaScript?
> > > > > > > > Thanks!
> > > > > > > > > > > > > >

0 comments:

Post a Comment