AJAX CollaspiblePanel + Javascript alert

Posted on 2008-10-14
Medium Priority
Last Modified: 2012-06-21
Hi all,

I have a page with a ajax CollaspiblePanel and a postback button. Click on the button will initiate a javascript alert box. I found that if the panel is closed, the panel will be expanded for a second while the javascript alertbox appear on button click. But it will stay close if the javascript alert is removed from script.

Can I ask if there is any work around if I want to keep the javascript alertbox together with the CollaspiblePanel? Thanks.
Question by:esther_6694
  • 2
LVL 20

Expert Comment

by:Obadiah Christopher
ID: 22718326
Place a literal control at the end of the form.

just inside the end of form tag


<asp:Literal id=".............>

Instead of writing Response.Write("code for alert..........


Lit1.text = "<script language='javascript'>alert('hi');</script>";

LVL 10

Expert Comment

ID: 22718690
You can set the OnClientClick event and set the javascript function that you want to perform for that button. This OnClientClick happens on client side (browser).
Or dynamically from server:

for example in your Page_Load:
mybutton.Attribute.Add("onClick", "alert('hi world');");
//this attribute is for rendering only.

Hope this helps


Author Comment

ID: 22727303
My button call javasciprt via RegisterStartupScript:
msgScript = "alert('hahaha'); "
ScriptManager.RegisterStartupScript(requester, requester.GetType(), "myscript", msgScript, True)

LVL 10

Accepted Solution

jinn_hnnl earned 1000 total points
ID: 22728698

That way, it's startup script, and only initialized once on your post back. I think what you need is register for a function block, so everytime you click on expand (for example) that script block will be executed or acts the way you want it.

Hope this helps


 public void Page_Load(Object sender, EventArgs e)
    // Define the name and type of the client scripts on the page.
    String csname = "ButtonClickScript";
    Type cstype = this.GetType();    
    ClientScriptManager cs = Page.ClientScript;
    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(cstype, csname))
      StringBuilder cstext2 = new StringBuilder();
      cstext.Append("<script type=\"text/javascript\"> function DoClick() {");
      cstext.Append("Form1.Message.value='Text from client script.'} </");
      cs.RegisterClientScriptBlock(cstype, csname, cstext.ToString(), false);
     mybutton.Attribute.Add("onClick", "DoClick();");

Open in new window


Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Introduction A frequently asked question goes something like this:  "I am running a long process in the background and I want to alert my client when the process finishes.  How can I send a message to the browser?"  Unfortunately, the short answer…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Planning to migrate your EDB file(s) to a new or an existing Outlook PST file? This video will guide you how to convert EDB file(s) to PST. Besides this, it also describes, how one can easily search any item(s) from multiple folders or mailboxes…
From store locators to asset tracking and route optimization, learn how leading companies are using Google Maps APIs throughout the customer journey to increase checkout conversions, boost user engagement, and optimize order fulfillment. Powered …

600 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