AJAX :: AutocompleteText Does Not Work When Placed In A User Control?
Oct 29, 2010
I thought the whole idea of allowing user to create their own custom controls was to built pages in small parts, share the control with other etc. But that doesn seem like the case. I was trying to organize a very heavy page into user controls and thats when i faced this problem.
here is the architecture that i have
Main Page: AjaxExtension Script Manager
Usercontrol1 (uc1): Script Manager Proxy, Reference to Ajax Toolkit Assembly, Autocomplete Extender, Webservice Method in uc1.cs
Usercontrol2 (uc2): Script Manager Proxy, Reference to Ajax Toolkit Assembly, Autocomplete Extender, Webservice Method in uc2.cs
It doesnt work. But when i placed that webservice method in the MainPage.cs it starts working. If this is how its suppose to work then that means to me that user control only supports full designing features however programing screws are missing in it.
I created a .NET user control to work as a DropdownCheckbox and added Jquery to give the sliding and hide effects. The code is as below:
[Code]....
This control works fine in a normal page, but once I put it inside an update panel it doesn't work. Is there a work around or simply I can't use JQuery inside update panel?
I have a webdayview control (Infragistics proprietary ASP.net control) on my page. On the aspx source I've inserted some javascript (webdayview_click - clientside click event) that calls a webmethod in the codebehind. This seems to work fine, but when I insert this webdayview control into a user control and move the corresponding javascript into the aspx of the user control, it doesn't work. I can't even insert a breakpoint into the javascript function to debug it. Is there a way to make it work? I want to enable the click event of the webdayview control so that when I click on it, the javascript function calls the webmethod. Here's my code (remember it is inside a user control):
[code]...
I posted this question on the Infragistics forum but didn't get any replies. Hopefully I'll get some here. :)
My button in user control doesn't work /its click event doesn't fire/. This user control is on the page that inherits from master page. Although, the user control buttons on the master page work correctly.
I have a user control which encapsulates a NumericUpDownExtender. This UserControl implements the interface ICallbackEventHandler, because I want that when a user changes the value of the textbox associated a custom event to be raised in the server. By the other hand each time an async postback is done I shoe a message of loading and disable the whole screen. This works perfect when something is changed in for example an UpdatePanel through this lines of code:
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest( function (sender, args) { var modalPopupBehavior = $find('programmaticSavingLoadingModalPopupBehavior'); modalPopupBehavior.show(); } );
The UserControl is placed inside a detailsview which is inside an UpdatePanel in an aspx. When the custom event is raised I want another textbox in the aspx to change its value. So far, When I click on the UpDownExtender, it goes correctly to the server and raises the custom event, and the new value of the textbox is assigned in the server. but it is not changed in the browser.
I suspect that the problem is the callback, since I have the same architecture for a UserControl with an AutoCompleteExtender which implement IPostbackEventHandler and it works. Any clues how can I solve this here to make the UpDownNumericExtender user control to work like the AutComplete one? This is the code of the user control and the parent:
using System; using System.Web.UI; using System.ComponentModel; using System.Text; namespace Corp.UserControls { [Themeable(true)] public partial class CustomNumericUpDown : CorpNumericUpDown, ICallbackEventHandler { protected void Page_PreRender(object sender, EventArgs e) { if (!Page.IsPostBack) { currentInstanceNumber = CorpAjaxControlToolkitUserControl.getNextInstanceNumber(); } registerControl(this.HFNumericUpDown.ClientID, currentInstanceNumber); string strCallServer = "NumericUpDownCallServer" + currentInstanceNumber.ToString(); // If this function is not written the callback to get the disponibilidadCliente doesn't work if (!Page.ClientScript.IsClientScriptBlockRegistered("ReceiveServerDataNumericUpDown")) { StringBuilder str = new StringBuilder(); str.Append("function ReceiveServerDataNumericUpDown(arg, context) {}").AppendLine(); Page.ClientScript.RegisterClientScriptBlock(typeof(CorpNumericUpDown), "ReceiveServerDataNumericUpDown", str.ToString(), true); } nudeNumericUpDownExtender.BehaviorID = "NumericUpDownEx" + currentInstanceNumber.ToString(); ClientScriptManager cm = Page.ClientScript; String cbReference = cm.GetCallbackEventReference(this, "arg", "ReceiveServerDataNumericUpDown", ""); String callbackScript = "function " + strCallServer + "(arg, context)" + Environment.NewLine + "{" + Environment.NewLine + cbReference + ";" + Environment.NewLine + "}" + Environment.NewLine; cm.RegisterClientScriptBlock(typeof(CustomNumericUpDown), strCallServer, callbackScript, true); base.Page_PreRender(sender,e); } [System.ComponentModel.Browsable(true)] [System.ComponentModel.Bindable(true)] public Int64 Value { get { return (string.IsNullOrEmpty(HFNumericUpDown.Value) ? Int64.Parse("1") : Int64.Parse(HFNumericUpDown.Value)); } set { HFNumericUpDown.Value = value.ToString(); //txtAutoCompleteCliente_AutoCompleteExtender.ContextKey = value.ToString(); // TODO: Change the text of the textbox } } [System.ComponentModel.Browsable(true)] [System.ComponentModel.Bindable(true)] [Description("The text of the numeric up down")] public string Text { get { return txtNumericUpDown.Text; } set { txtNumericUpDown.Text = value; } } public delegate void NumericUpDownChangedHandler(object sender, NumericUpDownChangedArgs e); public event NumericUpDownChangedHandler numericUpDownEvent; [System.ComponentModel.Browsable(true)] [System.ComponentModel.Bindable(true)] [System.ComponentModel.Description("Raised after the number has been increased or decreased")] protected virtual void OnNumericUpDownEvent(object sender, NumericUpDownChangedArgs e) { if (numericUpDownEvent != null) //check to see if anyone has attached to the event numericUpDownEvent(this, e); } #region ICallbackEventHandler Members public string GetCallbackResult() { return "";//throw new NotImplementedException(); } public void RaiseCallbackEvent(string eventArgument) { NumericUpDownChangedArgs nudca = new NumericUpDownChangedArgs(long.Parse(eventArgument)); OnNumericUpDownEvent(this, nudca); } #endregion } /// <summary> /// Class that adds the prestamoList to the event /// </summary> public class NumericUpDownChangedArgs : System.EventArgs { /// <summary> /// The current selected value. /// </summary> public long Value { get; private set; } public NumericUpDownChangedArgs(long value) { Value = value; } } }
using System; using System.Collections.Generic; using System.Text; namespace Corp { /// <summary> /// Summary description for CorpAjaxControlToolkitUserControl /// </summary> public class CorpNumericUpDown : CorpAjaxControlToolkitUserControl { private Int16 _currentInstanceNumber; // This variable hold the instanceNumber assignated at first place. public short currentInstanceNumber get { return _currentInstanceNumber; } set { _currentInstanceNumber = value; } } protected void Page_PreRender(object sender, EventArgs e) { const string strOnChange = "OnChange"; const string strCallServer = "NumericUpDownCallServer"; StringBuilder str = new StringBuilder(); foreach (KeyValuePair<String, Int16> control in controlsToRegister) { str.Append("function ").Append(strOnChange + control.Value).Append("(sender, eventArgs) ").AppendLine(); Append("{").AppendLine(); str.Append(" if (sender) {").AppendLine(); str.Append(" var hfield = document.getElementById('").Append(control.Key).Append("');").AppendLine(); str.Append(" if (hfield.value != eventArgs) {").AppendLine(); str.Append(" hfield.value = eventArgs;").AppendLine(); str.Append(" ").Append(strCallServer + control.Value).Append("(eventArgs, eventArgs);").AppendLine(); str.Append(" }").AppendLine(); str.Append(" }").AppendLine(); str.Append("}").AppendLine(); Page.ClientScript.RegisterClientScriptBlock(typeof(CorpNumericUpDown), Guid.NewGuid().ToString(), str.ToString(), true); } str = new StringBuilder(); foreach (KeyValuePair<String, Int16> control in controlsToRegister) { str.Append(" funcsPageLoad[funcsPageLoad.length] = function() { $find('NumericUpDownEx" + control.Value + "').add_currentChanged(").Append(strOnChange + control.Value).Append(");};").AppendLine(); str.Append(" funcsPageUnLoad[funcsPageUnLoad.length] = function() { $find('NumericUpDownEx" + control.Value + "').remove_currentChanged(").Append(strOnChange + control.Value).Append(");};").AppendLine(); } Page.ClientScript.RegisterClientScriptBlock(typeof(CorpNumericUpDown), Guid.NewGuid().ToString(), str.ToString(), true); } } }
and to create the loading view I use this: //The beginRequest event is raised before the processing of an asynchronous postback starts and the postback is sent to the server. You can use this event to call custom script to set a request header or to start an animation that notifies the user that the postback is being processed.
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest( function (sender, args) { var modalPopupBehavior = $find('programmaticSavingLoadingModalPopupBehavior'); modalPopupBehavior.show(); } );
//The endRequest event is raised after an asynchronous postback is finished and control has been returned to the browser. You can use this event to provide a notification to users or to log errors.
Sys.WebForms.PageRequestManager.getInstance().add_endRequest( function (sender, arg) { var modalPopupBehavior = $find('programmaticSavingLoadingModalPopupBehavior'); modalPopupBehavior.hide(); } );
I'm trying to get my treeview control to work where a user clicks on a parent node. The node will expand.Then, the user clicks on another parent node and that node expands while the previous parent node stays expanded. My problem is that when I expand one parent node, another expanded parent node collapses.What am I doing wrong?
i'm trying to develop a ASP.Net control. If it based on System.Web.UI.Control id doesn't work correctly with Ajax.Net updatePanel. If I change it to System.Web.UI.WebControls.WebControl the it works fine with Ajax controls. What is the difference between them and how I implement it on Control based Control?
I have a form in aASP User Control (.ascx) file. Maxlength does not work for the multiline textboxe hence it is generated as a textarea, which has no support for this attribute. I could maybe use some asp validation, to prevent submission of too much text, but I want to prevent it to be possible to even enter too many characters, just like is possible for single line textboxes... I don't know if the control has any onload event that I could use to add attributes to the textbox from code behind and and combined with javascript fix this or anything..
Thought I'd give that AjaxControlToolkit a try, but sadly it doesn't seem to work. Am I missing a step? I followed these instructions [URL] and did the following.
Downloaded the Binary.net3.5 zip to C:Downloads on my pc that uses VS2008 Extracted All Files Added the files to VS 2008 (I see them in the toolbox, and can click/drag them to my sample page.
I build the site, and no "coolness" rounded corners. (this is the first control I thought I'd try).
I have a User Control (ascx) and a property which a want to display in my categories tab in Visual Studio in the category named "Styles".
[Code]....
And here is the problem: Actually I do not need a get, because I only have to set the property (write only property). But when I omit the get, the property is displayed in the "Misc" category in the categories tab in Visual Studio. Only when I code the get as well, then the property is displayed correctly in the "Styles" category in the categories tab in Visual Studio.
Does anybody know why? How can I display the category correctly only with set?
I often use Placeholder control to dynamic load the UserControl. However there is a problem when i use, AJAX Control Toolkit not work on UserControl.
I would like for example a specific example as follows:
- This Project has 2 folder as "not use placeholder" and "Use placeholder". In folders have 2 file, default.aspx and uc1.ascx have the same content. - In the folder "not use placeholder", I add CalendarExtender in uc1.ascx and run normally and in the folder "use placeholder" then CalendarExtender is not working.
I've practically spent seven or eight hours trying to get the ASP.NET AJAX Accordion to work and it simply will not cooperate. I have been to every imaginable corner of the web to Bing and Google, read post after post on this forum, and done any other thing I could possibly think of to get this to work, yet I still hit this wall.
Here's the code I've been using to get this to work:
[Code]....
As for the Massachusetts/Arkansas bit, I found that on some other forum that said that coding would work (it didn't for me). I'm hosting this failed attempt at [URL]. I do have the Bin folder in the project, so that's not the issue.
I can't get my <ajax:asyncfileupload> working and I don't see why...
When outside any panel or table it is working well, but as soon as I put it in a <asp:panel> or table I get a strange error which seems to be on client-side but I don't understand what's happen here. Here is the code and code-behind and Javascript.
Here's the error:
[URL]
Here's my front-code:
[Code]....
Protected Sub fupAjoutLogo_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs)
I am having quite a bit of trouble getting an accordion control to work. I downloaded the AJAX Control Toolkit (v 3.5), added the dll to my toolbox, and added an accordion control with the following code:
i have a problem with autocomplete control i used in my page, but it does not works so, i do not know how to debug it for finding some problem i tried also to create new page and insert only textbox and autocomplete control...again does not works.... which is wrong?
i am using mod_aspdotnet.so module to hosting my ASP.NET application. all was ok until i use ajax control tool kit in my aplication. I am using ajaxToolkit:CascadingDropDown to conect 2 dropdownlist in cascade. In IIS every thing works fine, but in apache there are some problems. When load the page, i got the next javascript error: 'Sys' undefined. the object signed are :
i am using VS2008, 3.5 .net and have installed ajax control toolkit and added controls into toolbox, that was fine. But, i can't get any of control to work, nor it renders in design view on my page. Control source is created, page builds without errors but controls don't work. For example:
I use AutoCompleteExtender control in an application. When user types an account name to pull a report, the auto complete control lists the top 40 account names from database, user is able to select an account name or type exact account name to pull a report.
It works fine on regular browsers. But the auto complete function does not work on blackberry browser. No error message either. If user types an exact account name, a report can still be pulled. But if a user does not know an exact account name, no data will return because that wrongly typed account name does not exist.
Does somebody know how I can make auto complete work on blackberry or does somebody know any alternative method?