bala3569
bala3569

Reputation: 11010

How to show a div after postback on a button click?

Here i have a div in which i am showing it during the mouse hover in the master page and after mouse hover three href links will appear in that div .After clicking that href link it is traversing to another page,postback happens and that div is getting hidden in the master page.I need to show that div after that click also.I have used updatepanel and tried it but still it is not working.here is my code

//Div part

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="Update" runat="server">
<ContentTemplate>
<div runat="server" class="divSUBMenu" id="describe" style="width: 700px; height: 20px;
 font: Arial, Helvetica, sans-serif;" onclick="show(0)">
</div>
</ContentTemplate>
</asp:UpdatePanel>

//Onhover part

 <a href="#" onmouseover="showit(0)">
 <img src="Images/Analyze_over.jpg" name="image1" width="84" height="22" border="0"
 id="image1" alt="" /></a>

//Javascript for mousehover(working fine)

var submenu = new Array();
    submenu[0] = '&nbsp;<font style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"><a style="color: #FFFFFF; text-decoration: none;" href="ATrendAnalysis.aspx">Trend Analysis</a> &nbsp;&nbsp; <a style="color: #FFFFFF; text-decoration: none;" href="AEventPerformance.aspx">Event Performance</a> &nbsp;&nbsp; <a style="color: #FFFFFF; text-decoration: none;" href="ACannibalization.aspx">Cannibalization</a> &nbsp;&nbsp; <a style="color: #FFFFFF; text-decoration: none;" href="AHaloEffect.aspx">Halo Effect</a> &nbsp;&nbsp; <a style="color: #FFFFFF; text-decoration: none;" href="AVolumeDecomposition.aspx">Volume Decomposition</a></font></span>';
        var delay_hide = 500;
        var menuobj = document.getElementById ? document.getElementById("describe") : document.all ? document.all.describe : document.layers ? document.dep1.document.dep2 : "";

        function showit(which) {
                clear_delayhide();
            document.getElementById("describe").style.visibility = 'visible';
            thecontent = (which == -1) ? "" : submenu[which];
            if (document.getElementById || document.all) {
                menuobj.innerHTML = thecontent;
            }
            else if (document.layers) {
                menuobj.document.write(thecontent);
                menuobj.document.close();
            }
        }

and finally the part below is not working during the onclick but this alert is working

function show(which) {
alert("test");
document.getElementById("describe").style.visibility = 'visible';
}

Any suggestion??

EDIT: This is the href am clicking

<a style="color: #FFFFFF; text-decoration: none;" href="ATrendAnalysis.aspx">Trend Analysis</a>

Upvotes: 1

Views: 4632

Answers (2)

Kishore Kumar
Kishore Kumar

Reputation: 12874

You have to use ClientScriptManager

http://msdn.microsoft.com/en-us/library/3hc29e2a.aspx

Example:

void Page_Load(object sender, EventArgs e)
{
    if(checkDisplayCount.Checked)
    {
        String scriptText = "";
        scriptText += "function DisplayCharCount(){";
        scriptText += "   spanCounter.innerText = " + 
            " document.forms[0].TextBox1.value.length";
        scriptText += "}";
        ClientScriptManager.RegisterClientScriptBlock(this.GetType(), 
           "CounterScript", scriptText, true);
        TextBox1.Attributes.Add("onkeyup", "DisplayCharCount()");
        LiteralControl spanLiteral = new 
            LiteralControl("<span id=\"spanCounter\"></span>");
        PlaceHolder1.Controls.Add(spanLiteral);
    }
}

Upvotes: 2

Grant Thomas
Grant Thomas

Reputation: 45083

Since the div is set to runat=server, you could control this on the server side - setting describe.IsVisible = false initially, and changing it to describe.IsVisible = true post-click.

If for whatever reason this must be done on the client, due to reliance on other scripts or something, then make sure you're looking for the control by using the correct identifier - it could be, depending on the version of ASP.NET you're using, that the control is prefixed with ctl00_x. In fact, even in newer versions of ASP.NET (above .NET 3.5), I think the UpdatePanel might explicitly alter the identifiers of its elements using a prefix so as to keep track of what it contains, don't quote me on that though. Check the rendered markup output on the page to check this.

Upvotes: 0

Related Questions