AJAX :: User Controls And Control Extenders / Rendering A SPAN As An Element To Surround The Control?
Aug 24, 2010
Two separate questions, but sufficiently intertwined that I'm going to try the two together....
Firstly - User Controls and Behaviours
I have a User Control which contains a few visual controls. I am attaching some behaviours by using GetScriptDescriptors and am passing some JavaScript to the browser using GetScriptReferences. That is all rock solid and working well. However, when developing, I did discover that I couldn't attach the ehaviours to the User Control itself - not surprising as rendering a User Control does not create a DOM element which represents the actual control. So, I have attached my behaviours to a "random" TextBox within the User Control.
So - first question, is there a better way to do that? For example, should I always be rendering a SPAN as an element to surround the control? Not sure what that would do to the robustness of the rendering. What is the right way to attach a behaviour to a User Control.
Secondly - Accessing those same Behaviours later
Assume I have placed a User Control on the page. That User Control exposes a Property (actually a Javascript Function of course) which does "something" to the control - for the sake of example we'll say that the function is set_Border(colour). I then have a behaviour on the same page (actually an Extender on a different control) which needs to call the function. I have a reference to the User Control in my script, so I have tried TheControlReference.set_Border('red') and find that my control doesn't support the set_Border method.
I guess this is probably because the behaviours are not attached to the User Control itself, but to a GUI element within it. Hence, I suspect that the answer to the second question lies within the answer to the first.
I download Ajax control toolkit to use it in my website. I readed "Using AJAX Control Toolkit Controls and Control Extenders (C#)" to known how i can use them. In the Control extenders when i added a button to My Webpage, How can i find "Add Extender task option" ? because i should click on it to set the options.The Add Extender task option is not appear...! I was reading the page [URL] that i encountered this problem.
I am try to migrate an asp.net web application to mvc. The problem im having is that it uses all asp controls and a ton of ajax control extenders like filtered textbox, masked textboxes, confirm extender, modal popup, the calander, ect...
How can I implement these extenders with the Html.Textbox controls?
I am using two user controls in my page. The controls are loaded dynamically one at a time. I'm just referencing the user controls in the page and loading them dynamically using 'LoadControl()'. Everything is working fine till now and the user can switch the controls one another.
Here the issue I found is eventhough the controls are working as expected and the data is visible, the rendered HTML contains only the first loaded user control's markup.
Even if the current control displayed is 'usercontrol2', the source shows 'usercontrol1' markup. How can I force the page to render 'usercontrol2' markup and remove 'usercontrol1' markup while loading'usercontrol2'?
I have a user control with a datagrid and few other information on title and summary. I would like to render this control to an Excel file !
The problem is , as soon as i try to open the rendered xls file, Excel reports an error, that the file extension is not valid, and that it is not from a trusted resource.
I have a custom control that renders different controls based on a property value. This all works correctly until i try and add a rating control to the control. When i render both controls in the CreateChildControls the control is rendered properly.
However when i try to add layout by overriding the RenderContents method and rendering controls there, an error is generated Extender controls may not be registered after PreRender.The code shows both methods of creating the controls.
I don't think I understand fully how ASP.NET does inheritance of controls.I have a user control, ucBase, which has an asp.net label in the ascx file. Code behind references the label and it works fine during run time if the control is not a parent for another user parent.
If I have another user control, ucChild, inheriting from ucBase, the label in ucBase's code is always null. ucChild has no controls in its ascx fileThe server controls (like the label) needs to be declared in the ascx file and not created programmatically.What needs to be done for ucBase to see its own controls when it's a parent user control?
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="test.ascx.cs" Inherits="UserControls_test" %> <p id="XXX">aaa</p>
and here is the contents of my test.ascx.cs file:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class UserControls_test : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { this.XXX.InnerHtml = "BBB"; } }
I get an error when I refer to the id, "XXX" (underlined above) in code behind which reads: 'UserControls_test' does not contain a definition for 'XXX' and no extension method 'XXX' accepting a first argument of type 'UserControls_test' could be found (are you missing a using directive or an assembly reference?)
I have tried XXX.InnerHtml and I have tried this.XXX.InnerHtml and get same problem.
How do I successfully refer to ID'ed HTML elements in code behind?
I have a user control which has html elements like <input type="button".... and i want to set its display property on preRender state.Would you please explain, what kind things i have to handle this user control? So, in this functionprotected override void OnPreRender(EventArgs e) { } I have only EventArgs e and it doesn't have proper method or properties to bring me the html of user control.
I have placed a ratngs control like the one shown in the tutorial. When I debug the page, I cannot see the ratings control. However I can hover over where the control is, and it will show the ratings tooltip (e.g. 1, 2, 3, 4 and 5), but no stars.
Is there a quick way to get the instance by Dom element.
My way is:
Base.find = function(element) { var c = Sys.Application.getComponents(); for (var i = 0; i < c.length; i++) { var e = c[i].get_element(); if (e == element) return c[i]; } return null; }
2- i have Ajax Control ToolKit HTML Editor OutSide My UpdatePanel and its not inside any control.
my problem when make HTMLedior (visible=false ) onpage event, MyupdatePanel Render Control Much Fast, but when i Make it visible its slow my application althougth this htmleditor not included in any update panel and its not refreshed.
I wrote two control extenders that need to be placed always in the same order. Is there any way to make VS always place them in the correct order?
The only solution i found was to place them in a central repository keyed on the target control ID on their init stage - and then have each of them perform its work through that repository rather then directly. but this looks like an overly complex solution for me.
I'm receiving the following error in DesignMode with the Accordion1 control. Not sure what is causing this. This is my ASP WebApp.Error Rendering Control - Accordion1 An unhandled exception has occurred. Collection was modified; enumeration operation may not execute.Any idea, what causes this error?Code VS 2005 Pro ASP Ajax XP SP3
I want to position a button 2px to the left of a title span on my master page. The span can vary in size, and is centered in its containing div. How can I do this?
EDIT: Here is the code:
[code]....
EXPLANATION: The checkbox with togglebutton is to mark the page I am on as a favorite. I want this checkbox to be positioned 2px to the left of the TitleLabel span.
How can I get all the textboxes inside a create user wizard control using getElementsByTagName().
Below is my JQuery code:
[Code]....
The above code isn't displaying hint text when the textbox retreives focus.
I think there is something wrong with this getElementsByTagName("asp:TextBox"); , I have also tried getElementsByTagName("TextBox"); , getElementsByTagName(":textbox"); and getElementsByTagName("input"); .
But no one of them gets the textboxes array.
Can anyone tell what will be the correct syntax for getting all the textboxes inside a create user wizard control using getElementsByTagName()?
In my default.aspx page I have a PlaceHolder control within an UpdatePanel. In this placeholder control I will dynamically load a web user control, which is just a form with a submit button. On this user control, I have the form within an update panel and I have the "Submit" button's Click Event added to the triggers.
When I submit the form, the UpdatePanel on the web user control nor the update panel on the default.aspx page are capturing the post back, thus causing a full post back which refreshes my page.
how to capture this post so its rendered in Ajax and not a full post back?