Solved

Suppressing postback on a user control

Posted on 2004-09-07
4
309 Views
Last Modified: 2011-10-03
I have a user control for a web site that shows a button called What Now. The page Load pulls the data that needs to be shown on this control, and the ascx page itself contains javascript to hide/unhide the control/tooltip. The problem, however, is that everytime you click the control to hide or unhide, it's making a server trip for some reason, and resetting. Anyone know why?

Here's the ascx page.
*************************
<div id="divWhatNowButton" class="what_now_top_bg" style="WIDTH:551px" onmouseover="ShowTip(23, event, 0)" onmouseout="HideTip(23, event)">
      <input type="image" id="imgWhatNowButton" height="33" width="551" src="images/top_center_title.gif" alt="Display/Hide the What Now help message." onclick="javascript:toggleWhatNow();">
</div>
<div align="left" id="divWhatNowText" style="WIDTH:552px;BORDER-BOTTOM:1px solid;HEIGHT:16px">
      <table border="0" cellpadding="5" width="100%">
            <tr align="left" valign="top">
                  <td><asp:label id="lblToolTip" runat="server" cssclass="instructions"></asp:label></td>
            </tr>
      </table>
</div>

<script language="javascript" type="text/javascript">
<!--
//toggleWhatNow();
function toggleWhatNow() {
//toggles display of "What Now" and sets the session cookie (not persistant)
      var iVisible      = readCookie('ShowWhatNow');
      var oToolTip      = document.all('divWhatNowText').style;
      alert('bVisible = ' + iVisible);
      if (iVisible == null) {
            iVisible = 1;
      }
      else if (iVisible == 0) {
            iVisible = 1;
      }
      else {
            iVisible = 0;
      }
      //alert('iVisible = ' + iVisible);
      if (iVisible == 1) {
            oToolTip.display = 'none';
      }
      else {
            oToolTip.display = 'block';
      }
      writeCookie('ShowWhatNow', iVisible);
      return false
}
//-->
</script>


And here's the vb code.
****************************
Public WhatNowID As Integer = 0

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        Dim bVisible As Boolean = False
        Dim sToolTip As String = ""

        If WhatNowID <> 0 Then
            sToolTip = clsMiscUtil.ToolTipGet(WhatNowID, ucHeader1.oSession)
        Else
            sToolTip = WhatNowID.ToString()
        End If

        lblToolTip.Text = sToolTip

    End Sub
0
Comment
Question by:kriskramer
  • 2
  • 2
4 Comments
 

Author Comment

by:kriskramer
ID: 11997975
Ok. I put the user control outside of the form on the page and it works like it's intended now, however, this control is designed to be in the middle of the page, between other controls that DO need to be in the form tag. Is there anyway to put this control back between the form tags and suppress the postback?
0
 
LVL 20

Accepted Solution

by:
ihenry earned 125 total points
ID: 11997987
try to modify this line

onclick="javascript:toggleWhatNow();

to

onclick="javascript:return toggleWhatNow();
0
 

Author Comment

by:kriskramer
ID: 11998208
That did it. What's the difference? Why does using return keep it from posting back?
0
 
LVL 20

Expert Comment

by:ihenry
ID: 11998221
Simply, the page will not be posted back if the javascript function return false.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now