Solved

Trying to Cause Full Page Post Back From Update Panel

Posted on 2012-04-04
4
766 Views
Last Modified: 2012-04-06
I have a .aspx page that is dense to say the least. In it there is a modal popup and within that I have an update panel.(The modal may not matter here but I thought it best to mention it.) Within the update panel I have a place where the user will enter some search criteria and the results from the search are displayed in a gridview control. Within each row of the gridview control there is a checkbox for the user to select a particular record.

Upon doing so, the OnCheckedChanged event of the checkbox runs and  it tries to take text from one of the cells  (its a driver name) of the selected row and bind it to a label. This labe is outside both the update panel and the modalpopup.

So what I need I'm pretty sure is this to do is a full page postback when the  OnCheckedChanged event fires so the label outside  can display the selected rows cell text.
The code I have below almost works...(ugh!!!) It does not do the post back on checking a record. However, it seems that when I  go back into the search and uncheck a record, the full postback happens and the labels text is correctly bound. Very weird.

Any direction on what I not understanding and how to fix this is most appreciated. Code is below.
Jason
    protected void chbxselect_OnCheckedChanged(Object sender, EventArgs e)
    {
        CheckBox chbx = (CheckBox)sender;
       
        
        if (chbx.Checked == true)
        {
            GridViewRow row = (GridViewRow)chbx.NamingContainer;
            string drivername = row.Cells[1].Text;
            lblDriverName.Text = drivername;
         
             
            mpedrvsearch.Hide();
            ScriptManager scriptManager = ScriptManager.GetCurrent(Page);

            if (scriptManager != null)
            {

                scriptManager.RegisterPostBackControl(chbx);

            }





        }

    }

Open in new window

0
Comment
Question by:jazzcatone
  • 2
4 Comments
 
LVL 25

Accepted Solution

by:
Rouchie earned 500 total points
ID: 37807131
Take a look at this:

http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerpostbackcontrol.aspx

You'll want to apply it initally on page_load, then every time the panel containing the checkbox is updated.
0
 

Expert Comment

by:ramgunti
ID: 37807285
Dear friend ,

Use below code in .aspx
--------------------------------------
<Asp:updatepanel id="uplsearch1" runat="server" update="conditional">
<contentpanel>
<asp:gridview>

your code

</aspGridview>

</contentpanel>
</updatepanel >

<Asp:updatepanel id="uplsearch2" runat="server" update="conditional">
<contentpanel>

your lable

</contentpanel>
<trigger>
<asp:AsyncPostBackTrigger ControlID="gridview1"/>


</trigger>
</updatepanel >

Use below code in .cs
--------------------------------------

 protected void chbxselect_OnCheckedChanged(Object sender, EventArgs e)
    {
        CheckBox chbx = (CheckBox)sender;
       
       
        if (chbx.Checked == true)
        {
            GridViewRow row = (GridViewRow)chbx.NamingContainer;
            string drivername = row.Cells[1].Text;
            lblDriverName.Text = drivername;
         
             
            mpedrvsearch.Hide();
            ScriptManager scriptManager = ScriptManager.GetCurrent(Page);

            if (scriptManager != null)
            {

                scriptManager.RegisterPostBackControl(chbx);

            }





        }
else
        {
            GridViewRow row = (GridViewRow)chbx.NamingContainer;
            string drivername = row.Cells[1].Text;
            lblDriverName.Text = drivername;
         if( lblDriverName.Text .contains(drivername))
{
 lblDriverName.Text .replace(drivername,'' ")
}
             
            mpedrvsearch.Hide();
            ScriptManager scriptManager = ScriptManager.GetCurrent(Page);

            if (scriptManager != null)
            {

                scriptManager.RegisterPostBackControl(chbx);

            }
}
0
 
LVL 25

Expert Comment

by:Rouchie
ID: 37807428
You will HAVE to use scriptManager.RegisterPostBackControl(chbx); on Page_Load otherwise it will never cause a full page postback on the first click!
0
 

Author Comment

by:jazzcatone
ID: 37808891
ramgunti,
    Unfortunately I have paging on my gridview. So when I click on a page it causes a full postback.
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

Suggested Solutions

Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

808 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