Check box not retain the state - asp.net

I have a check box in the webform; it is not retain its state when i click in the back button and again comeback the page using next button.

Make sure you have ViewStateEnabled=true on the checkbox.

You might be setting the value at page load

Try breakpointing the first asp.net event fired and see what the value of the checkbox is then. If it's what it should be then something else is changing it, if it isn't then you're right, it isn't maintaining state.

Related

TextChange event loose focus in asp.net

I am trying a very simple thing. I have 3 textboxes and 3 labels. On text change i am setting the content of label.
The issue is when i insert some value in 1st textbox(e.g 50) change the focus to another textbox the values in label is reflected perfectly.
But the focus which i setted on 2nd textbox is lost. And the focus is lost somewhere.
I need to click again on 2nd textbox to get focus.
The same issue is reproduced if TAB is clicked to change focus.
I have made a small demo project for the same and attached. You can avail that from the below link
https://skydrive.live.com/redir?resid=A716D678775EEF95!115&authkey=!ABp6kAon_ZNDLBU
Please someone help me...what am i doing wrong??
Thanks in advance...
This is a rather common issue in ASP.NET, as described here: http://www.codeproject.com/Articles/17571/Maintain-focus-between-postbacks-in-ASP-NET-2-0-al or here: How do I maintain focus position in UpdatePanel after page partial post back. Those links also contain some suggestion on how to solve this issue.
One of the possible solutions is to keep track of control with focus, put information about it into a hidden field and manually restore the focus after postback. This method is described in the first link mentioned.

How to save the listitems being added at client side when click the brower's back button?

I have two ListBoxes, left one and right one, and two Buttons in between Add and Remove. I wrote javascript function for Add/Remove to add selected items from left ListBox to the right ListBox. After submit the page, I click the Back Button in the browser, the items in the right ListBox are gone. I think the reason is probably because those items were added at the client side, server didn't know. It there anyway I could save those items so that when I click the Back button, they are still inad the ListBox?
I don't want to make the Add/Remove do a postback, since loading the page takes a while. I tried to put them in a updatepanel, but not working.
Update: I put the right ListBox in an UpdatePanel, and make the Add/Remove button PostBackTrigger, it worked. But this way caused a whole page postback? Why do I need UpdatePanel then? If I make the Add/Remove AsyncPostBackTrigger, it only caused partially postback, but when I clicked the Back button, my selection was gone. Any suggestion?
As per my knowledge, you cannot handle the browser "Back" button. You can disable the Back button instead in order to avoid the situation.
Could the jQuery BBQ: Back Button & Query Library solve your problem perhaps?

Overriding a radgrid row with a sliding popup when i click on delete option

I have a problem with radGrid Control..
According to my clients requirement we are displaying data in radGrid. But what my problem is, when we click on delete button, the row which has to be delete should be replace with a sliding popup asking " Are u sure you want to delete this row" and with two buttons.
I have tried a lot, but I didn't get any solution for that..
Can any one please help me..
Well, do you have to have a "sliding" popup? In-built it supports a nice radwindow element for the prompt, which you may be able to programmably slide. Set these properties on the gridcommandcolumn: ConfirmTitle="Delete Medical Home" ConfirmDialogType="RadWindow". Otherwise, you can give the button an OnClientClick value that fires a function to show the prompt, and manually control the postback for the delete. For the latter this requires some research, I'm not exactly sure how that works with the RadGrid (the postback to submit the command).
HTH.
Brian

vs2008 web express: detailsview can not hide new button

On details view, I would like to hide the new button.
On page load I have successfully done so by the following code:
dtvwMyProfile.Rows[5].Cells[0].Controls[2].Visible = false;
But how do I hide the New button when I hit cancel or update button after I am done editing.
The New button keeps showing up. How do I hide it completely from the screen.
In some event, the visible property keeps changing to true and how do i find out that event?
I want to be able to do it at run time instead of design time.
Dynamically changing the properties of child controls created by the DetailsView is not recommended.
If the button is being created by the DetailsView itself then all you need to do is set AutoGenerateInsertButton to false and you can do that in Page_Load.
I do not recommend randomly selecting a page event and handling it. If you do that then chances are it will just break again when you change something else.
Maybe try to do that in the ModeChanged event handler, which fires after the mode changes... But can you ensure new is always at position 2? You may want to verify the button by its text or command name.

Why does a button control need to be clicked twice?

I've got a web application working using VB and Ajax. I'm using updatepanels to avoid the irritating "flicker" on postbacks to the server.
I would like to have a button control defined within the updatepanel itself (tried moving it outside and got some catastrophic error, so left it there) that makes the current panel not visible and a sibling panel visible. This works with the exception that the button must be clicked twice. Not double clicked, but clicked once than clicked again.
In setting breakpoints I discovered the code behind that's attached to the button is actually being executed on the first click, but the panels don't switch as expected. If I click the same button OR worse yet, a different button, the expected behavior of the second panel appearing occurs. However, with the second button being clicked there's an unwanted bonus of a third panel being displayed, the third panel being made visible due to the second button being clicked.
I'm assuming this behavior is due to the updatepanel and its Ajax nature. Is there a way to avoid the second click? Am I misusing the updatepanel? I really wanted to use a modal popup (right out of the AjaxToolKit) but had problems with posting back the data so I opted for this approach. Any insights, assistance, even criticism would be welcome as this has plagued me long enough. Thanks
If you get rid of the UpdatePanels do things work as expected with PostBacks? Chances are something in your Page_Load or other event higher up the chain are "resetting" things in some way before it gets to your click event. Could this be the case?
I think your problem is that only the update panel is receiving data from the server after the method executes. The panel your are trying to change is outside of the update panel so it does not know that its properties have changed.
You either need to do a full page postback or have the panel you wish to modify inside the update panel.
I have run into this before and resolved it, I just can't remember how. I will try to find my old code and get back to you. one thought, do you have EnablePartialRendering enabled in your scriptmanager? maybe try wrapping both containers in a third panel.
Your update panel is sitting inside the other panels.
Should that be the other way around? AFAIK only controls within the update panel will get updated in via the AJAX call.
Here's a fairly simple solution. (I was having the same problem this morning.)
The UpdatePanel can't render stuff outside itself. So, as you noticed, the updates are happening, but you're not seeing the result.
The easiest solution is to force a full postback. You can do that like this:
protected override void OnInit(EventArgs e)
{
var scriptManager = ScriptManager.GetCurrent(this);
// or this.Page in a UserControl, etc.
scriptManager.RegisterPostBackControl(someButton);
scriptManager.RegisterPostBackControl(someOtherButton);
// etc. for each control that needs to update something outside the UpdatePanel
}
This still allows the buttons themselves to be updated in the UpdatePanel by Ajax (e.g. changing their state to disabled or enabled). The full postback only happens if the buttons are clicked.
Like others have said an update panel only updates its contents, thats one of the main benefits of using it.
Panel2 and pnlPrvCmt need to be inside your update panel for your button click method to work. Another option would be to put Panel2 inside one update panel and pnlPrvCmt inside a second update panel. Then any control inside either update panel will cause both to refresh, as long as the UpdateMode=Always (which it is by default).
Try giving the dynamic control an ID when it is created. For some reason this is required by .net for a dynamic control to work in this context.
myControl.id="newID"
I have found this to occur under 2 different scenerios:
No ID set on the control. Either the ID is left off of the markup or the the ID was not set when a dynamic control was created. ASP.Net uses the ID to track actions.
Nested UpdatePanels. Scenerio: When using a Masterpage, you might have a content placeholder that you wrap in an UpdatePanel so that an UpdatePanel is not needed in the content on the page. Then, in developing your page you might, as a habit, add an UpdatePanel.

Resources