I have a ScriptControl (requires ScriptManager) with JavaScript to handle client-side interactions and ICallbackEventHandler to communicate back and forth. Everything works perfectly with one or multiple instances of the control on a page. I placed the control inside a GridView with sorting and it still works. However, I place the GridView in an UpdatePanel and now whenever I sort I get the following error for each instance:
Sys.InvalidOperationException: Two components with the same id 'GridView_ctl02_MyControl' can't be added to the application.
Can someone point me in the right direction on how to solve this? I am assuming ScriptManager is not disposing of the old Sys.UI.Control objects before trying to $create() the new ones with the same ID. I thought the UpdatePanel/ScriptManager combination would automatically take care of disposing objects that would be replaced?
I have two update panels and one javascript control.
When the javascript button is clicked, it forces a partial postback on UpdatePanel2. UpdatePanel2 is populated with dynamically created buttons that have javascript effects (jquery) but when click can also induce a postback. My problem is that, when clicking on these dynamic buttons, the whole page does not do a partial post back but rather UpdatePanel2 itself does a partial postback and everything is gone.
However, what I want to do is be able to tie each of the dynamic buttons in UpdatePanel2 (After being dynamically created) and make them an asychnonous triggers to UpdatePanel1. So that when clicking on these dynamic buttons, ONLY UpdatePanel1 is doing a partial postback refresh. UpdatePanel2 stays put and remains the same.
I have an UpdatePanel with a GridView. This GridView has a template column that is a DropDownList. The problem is that the SelectedIndexChanged event does not fire for the DropDownList. Here is the code:
I'm trying to add and edit an image which is located in a detailsview which is inside an UpdatePanel. After I read relevant topics in the forum I installed the Ajax Control Toolkit. Below is my source code. When I used it only for insert new image it worked great. The problem caused when I tried to implement it on the Edit mode, i.e. when I tried to edit the image and upload a different image. Unfortunately it didn't work as I hoped. Nothing happend and the image hasn't been changed. I also tried to change the IDs (AsyncFileUpload ID) to be the same in both places but it didn't work either.
I've got a textbox being used to enter a password inside a wizard control. I'm trying to get a password strength meter working with it.
Unfortunately, the password box isn't visible until step 4 and this means that I can't register the event handler onload() and putting some JS next to the PW box to register the event handler doesn't seem to fire. I'm guessing this is due to the contents of the wizard being loaded through an AJAX postback.
I have a masterpage and inside that masterage is a user control that has a toolbar with a save button. I then have an aspx page that inherits form t he master page. In that page I have and updatepanel. Is it possible to set the post back trigger to the Save button inside the usercontrol?
I have copy and paste this Alert Class:[URL] It works except with a button inside an update panel but it shows no error. The asp code inside is executed but nothing shows up on client side.
I have a question. How do I correctly derive from a script control? Especially how to correctly define the script descriptors.
Let's say, I have a MyScriptControl class implementing IScriptControl:
[Code]....
In the derived class, how Do I correctly overwrite the GetScriptDescriptors method? Should I just call base.GetScriptDescriptors, enumerate through them and exchange the Type name everywhere? Or is there a more clean feeling approach to that?
I've got a custom script control, or what I call a composite control with a client side object, that I'm trying to use within a user control. The problem is the user control is changing the control id. So when I wire up the events with the code below the ids are wrong.
The Common.FindScriptObject code just outputs $find(''). Because it is being used within a user control the client side ids have an some extra lenght to them, like "usercontrol_controlclientId" vs "controlclientId". So how do I get the ids to be correct within a usercontrol?
I have a ScriptControl that uses an image as an embedded resource and GetWebResourceUrl to generate the WebResource.axd URL. I am currently using GetScriptDescriptors() to send the URL to the JavaScript object.The ScriptControl can be in a Repeater, so you may have 20+ instances. They all use the same images (not customizable through property), so I would like to set the URL once in a variable and share it. I know I could register a script block with a global variable, but would like to avoid that if possible. Is there a way to set a variable within the scope of the control type (global -> control type -> control instance)?
I'm creating a control based on ScriptControl, and I'm overriding the Render method like this:
protected override void Render(HtmlTextWriter writer) { RenderBeginTag(writer); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write("This is a test."); writer.RenderEndTag(); RenderEndTag(writer); }
My question is, what if I want to assign the div an ID attribute and have it be unique on the page, even if there are mulitple instances of my control?
That will prevent naming conflicts between instances of my control, but what if I've already created a div elsewhere on the page that coincidentally has the same ID?
I've also heard about implementing INamingContainer. Would that apply here? How could I use it?
UPDATE:
I've worked around this by overriding CreateChildControls and adding actual controls, as opposed to rendering HTML directly. In that case INamingContainer does its job. However, I'm still curious if there's a way to solve my original problem (unique IDs for directly rendered elements).
So i use PopupControlExtender (to edit some of the fields) inside ListViewControl which itself is embeded inside an UpdatePanel.
The problem is as follows whenever you cause partail postback the popup panels are created client side outside the updatepanel. And you get more clientside controls with the same clientside ID. When you postback with popup panel the server side control eg. Texbox has Text = clientsidecontrol1.text, clientsidecontrol2.text, clientsidecontrol.text3
A little pseudo code to provide some background:I have an ASPX with a placeholder and a buttonWhen the button is clicked it adds a web user control (uc1) to my placeholderhe uc has a buttonWhen clicked it adds a different user controls (uc2) to the placeholderStepping through the code, if I look at the placeholder.controls.count before and after the button-click in #4 the count increases by one, as you would expect.The problem is that the uc2 added in #4 doesn't appear on the screen. So, I wrapped my placeholder in an UpdatePanel. I've never used one before. So, I could refresh the placeholder after the uc2 was added.relevant ASPX code
The end result I get is that updDocumentQuickView is the UpdatePanel that gets updated, and not updFiles. If i wrap an UpdatePanel around lnkFolder, then that UpdatePanel gets updated, with the same C# code. Ive checked what kind of data that are sent back with fiddler, and the wrong UpdatePanel is sent. Im getting the correct RepeaterItem, and both repFiles and updFiles are found. What do I miss to get the right UpdatePanel to get updated?
UPDATE
Hawxby solution solved the problem with updDocumentQuickView getting updated, thanks for that. But im still having problems with updFiles sending nothing back. Some further testing, with putting literals inside updFiles and working, tells me that theres something with repFiles that isnt returned. repFiles does have data that is bounded.
FINAL SOLUTION
repFiles.Visible were set to false in repFolders_OnItemDataBound, no wonder it didnt show.
I am using Asp.Net 3.5. I am having two problems in dropdown inside the update panel. I have two drop down list. First dropdown i loaded the data from db. Its working fine. Once i changed the data using SelectedIndexChange event it's firing first time(i put AutoPostback="true") if i click multiple times for multiple data it's not fired. If changed the value i bind the data to another dropdown list. But it is not binding. My control is inside the update panel. What is the problem? i came across multiple site and try it.But no use? Its very urgent. I put the code here.
I am having a custom ASPX page with following structure. Its having 2 update panel and I have a ImageButton outside them. The two UpdatPanel are triggered by this ImageButton.The Problem is whenever user clicks the Imagebutton, the image in the ImageButton is getting reloaded...it disappears and the reappears. I am not able to figure out why the postback is happening when the imagebutton is place outside UpdatePanel. Is it because I am using this Imagebutton for triggering AsyncPostBack in UpdatePanel?
I am using a third party control that upload images. It works fine when i place it on aspx page (Outside DetailView) but I want to place that functionality inside EditItemTemplate but it just never work .
I have a menu of buttons inside an UpdatePanel (UPD_Menu) so that buttons can be enabled/disabled without refreshing the entire page. When a user signs in, the Sign Up button is disabled and the Profile button is enabled. Likewise, when the user signs out, the Sign Up button is enabled and the Profile button is disabled.
Inside this UpdatePanel (UPD_Menu), along with the buttons, is a ModalPopupExtender that is fired by the Sign Up button (TargetControlId="BTN_MenuSignUp") that pops up a dialog Panel (PNL_SignupProfile) that contains yet another UpdatePanel (UPD_SignupProfile) that contains a Submit button as well as a Cancel button (CancelControlId="BTN_SelectCancel").
The behavior I am getting is when the user clicks no other button than the Sign Up button, the dialog (PNL_SignupProfile) pops up and is modal. The Submit button closes the dialog and makes the once-hidden panel appear under the menu of buttons. This is not good as only the inner UpdatePanel (UPD_SignupProfile) should be updated without affecting the outer UpdatePanel (UPD_Menu). The Cancel button works as it should by simply closing/hiding the dialog.
If a user clicks any other button in the menu first, nothing happens ( no codebehind yet) but when the dialog (PNL_SignupProfile) is shown, the Cancel button causes the hidden Panel (PNL_SignupProfile) to appear under the buttons. I've tried many different things to no avail...including putting the dialog panel in different places and even controlling the ModalPopupExtender from code.
The only code I have so far is for handling the signin/signout and enabling/disabling the signup and profile buttons based on user signin. There is no code yet to handle the menu of buttons nor the submit button of the popup dialog.
I've got a set of cascading dropdowns, but I want the default selectedvalue to be there when when page loads though.Right now, my dropdownlist is defaulting to the first value in the DDL. (ASP.NET C#) and the code (issue is with the "DDL_Assignment" dropdown).
Now what I'm expecting it would do is that when you click the button (which is displayed inside fancybox) it would update the textbox and do whatever I define it to do in the codebehind. Unfortunately nothing happens when I click the button.
I've tried to trigger a __doPostback myself passing the ClientID of the updatepanel and/or the button itself. I can't seem to trigger the event in the codebehind however.
The thing is if I remove the fancybox, the updatepanel works as expected. So I am guessing if I can somehow find out what eventhandler logic is behind the button before I create the fancybox, I might be able to recreate the eventhandler logic after attaching fancybox? I just can't find it anywhere...
I am using ASP.Net WebForms 3.5 and JQuery 1.4.1
Update
I got it to trigger the codebehind button_click event by overriding the clientside click event on the button using the code below. The key is in using the name of the button as the sender object for the __doPostBack event. The only problem that remains is that all other values aren't posted back anymore. If I type anything in the textbox, click the button, my codebehind doesn't know what's in the textbox anymore.
$("#popupTrigger").fancybox({ //.... other options, onComplete: function () { $("#RefreshContentButton").click(function () { __doPostBack($(this).attr('name'), ''); }); } });