Can someone help me accomplish the following.....
I want to create a function that will make a treeView out of link buttons. Then I want to tie all the link buttons to one click event. So each time the user does somethingI will append the users name to the current linkbuttons if the user clicks one of the link buttons a click event is raised and I can extract the text of that button.
Here is an example:
Nick
...user does something...now the link string says
Nick > Jeff
...user does something...now the link string says
Nick > Jeff > Charlie
and so on.
Now I want to give the user the ability to click one of these link buttons (there are 3 in this example). If the user clicks one of the buttons a click event is raised and I can extract the name out of the text of teh link button.
Can someone help me make a skeleton for this?
Why not just use the standard ASP.NET TreeView control which supports clicking on nodes and managing node paths?
You could programatically add link buttons on postback and wire them all up to the same event handler using the button.click += EventHandlerMethod syntax. You could work out which button has been clicked by casting the sender object in the event handler method to a linkbutton then accessing its text property.
Related
I am having a asp.net web page on which I am loading a single usercontrol (UC) ten times. The first user control will be used to gather data about the main employee and the rest about his dependent. There will be "next" and "Previous" navigation button to move from one UC to another. I have couple of DevExpress check boxes on the UC. If the user checks any of them on the first page and then clicks the "next" button to navigate to the next UC, I want the checkboxes in the dependent UC also checked. I tried to do that in the page load event of the dependent controls in code behind. The code is given below. But it doesn't work. Looks like that I have to use javascript to do it. Please let me know how to do it.
codebehind:
dependentCheckbox.checked = mainEmployeeCheckbox.checked;
Thanks
I have the following scenario:
UserControlA contains a <asp:Button id="bSomeid" onClick="AddItem" /> with some code to an item to a shopping basket in AddItem.
UserControlB contains some LinkButton's that dynamically add a selection of UserControlA to the page in the OnClick event.
This is all done in an UpdatePanel. It is a little more complicated but I have pruned the information to what I believe is causing the problem, I will add more information if necessary.
The problem I have is that it takes 2 clicks for the AddItem event to trigger after I have added the items to the page after clicking the LinkButton.
I understand why this is happening - it is to late in the page cycle to register events for the next post back in the onclick - but can anyone think of a way around this? Can I force an event to be triggered on the next postback? I have tried to think of a way to run my code in page_load but I requuire access to the sender in the onClick.
Using .NET 4.0.
EDIT
I managed to find a way to get the link button sending the request in the Page_Load (using Request.Form["__EVENTTARGET"];) so I moved my code to the Page_load event. It still requires 2 clicks so I am assuming it isn't something to do with the onClick being registered to late.
Are there any other general things to check that could cause a button to require 2 clicks to post an event properly?
If your suspicion about being late in page life cycle is true then you can try using ScriptManager.RegisterAsyncPostBackControl method to register dynamically added controls in the link button click - considering that your button is within user control, you need to add public method into UserControlA that would actually register the button bSomeid1 and link button click from UserControlB would actually call the A control's method.
EDIT :
Another cause for button click not happening can be that button being dynamic control is not added in the page hierarchy when post-back happens (or it gets added very late in the page life cycle when the post back data is already processed). A really full-proof solution should add dynamic controls back to the page hierarchy in page_load it-self (and strictly maintaining same controls ids within hierarchy). If that's not possible then you can sniff the request (Request.Form) to detect the post-back.
In your case, you should ascertain if the button is indeed causing the post-back on each click. If yes, what is the POST data (Request.Form) for the first request - what is the __EVENTTARGET value on the first click (and post-back)? That should start your trouble-shooting.
On the other hand, a simple work-around could be to use html anchor element (you can still use link button) and have a javascript handler in the click event that would set some hidden variable and then submit the form (you can simulate the click on hidden button to trigger ASP.NET client side submit pipeline) . Now the hidden variable value can be used on the post-back to determine which link button has been clicked.
"Are there any other general things to check that could cause a button to require 2 clicks to post an event properly?"
Does it require two clicks on the control, or does it take accept a single click elsewhere on the screen, and then fire first time with a single click on the control?
I have my own (similar) issue with the Updatepanel where the first (expected) trigger does not fire and it seems that a single click elsewhere, and then the subsequent triggers fires first time (which totals 2 clicks)
[edit] Since you are working on this ATM, it may help me as well. Do you have a textbox with a trigger event on it? I do, and if I leave this blank (so that it does not fire) then there is no need for a second click.
I use Devexpress UserControls in my ASP.Net Project for displaying, editing, and deleting rows of data.
On one of my pages, I have two controls, a DevExpress grid and an ASP.Net button. When I want to edit a row, I click on the edit button of that row, whereupon a popup showing detail of that row is displayed. I can edit these details and then take some action. Tthis popup has buttons Cancel and Save, and when I press Enter key I want the Save action to be invoked. However, currently, when I press the Enter key, it is getting directed to the main page and not the dialog?
Does anyone know how I can get the Enter key to activate the Save action on the dialog instead?
Review the following examples to learn more on how to handle document events and respond to a particular end-user action:
E352
E3845
i am developing one asp.net application,i am using one gridview and bind the data and one delete button also displayed, so click the delete button first display the confirm message box.(Do u want Delete?) ,confirm box display the ok and cancel buttons but my problem is i want to display the Yes and No buttons and display the error image . How to write the code in RowDeleting Event or Any javaScript, pls tel me it is very urgent
Thank u
hemanth
You can use the the Ajax Control Toolkit's confirm button extender have a look here Confirm Button Extender also math berseths post also will you help you with the code. Look here Including Yes/No in gridview
i have created Array of Linkbutton
and when user click on link button it will create an array of Radio Buttons
but it requires Postback all time so page load takes more time...
what is solution of it??
Use asp.net Ajax update panel.
Put link buttons and panel/view (or what ever control you are using ) update panel.
I am not sure if I am following a 100% but if you don't want to do a post back then your going to need to write some javascript(or use a framework like jquery) to generate radio buttons when the user clicks the link button(plus you probably don't want to use a link button then as it will try to always cause a postback or you will need to stop the post back from happening).