Custom Server Controls :: Custom Composite Control With Custom Templated Child Controls?
Mar 22, 2011
I am trying to build a custom composite control, which allows me to add custom content to each child control. It's a similar concept to what you have with a GridView and TemplateColumn. The markup used to place the control on the page would end up being something like this:
[Code]....
I have the code below, which allows me to put that markup on the page without throwing any errors, and it renders all the correct HTML, except it doesn't render the contents of the ColumnTemplate. I have replaced the Render() code with a comment because it's quite long winded and doesn't add anything important here:
[Code]....
I have tried to follow examples on MSDN and other forums but I can't make this work. I think I'm missing the code to render the contents of the template, but I don't know how to hook that up.
i am new to technology so go easy on this post according to what i read from web there are 3 type of custom server controls 1 superclass2 composite 3 renderedi found video tutorial for superclass custom server control but couldnt find video tutials for other 2.lease forward me link for composite and rendered custom server controls video tutorial
I have a templated user control with single instance template attribute. It works great for everything except the following scenario:
[Code]....
The folder selector uses a tree view that allows people to select a folder, its FolderSelected event works perfectly and the file selector updates with the files. The file selector has a repeater that lists the files in the selected directory. It has a linkbutton for each of the files so that the user can select a file. The problem is that the ItemCommand event of the repeater doesn't fire when the file name is clicked on. The page performs the async postback like it should, but in debug, the method to handle the itemcommand event is never hit. On the same user control to select files there is a button that the user can add files to the folder. When it is clicked, the event DOES fire and the file is added and the control refreshes in the update panel, everything perfect. It seems that because the linkbutton is already in a templated control (which is in a user control, in a templated control), the event isn't firing correctly. I am confused as to why this should be a problem, especially since all the other events (even the custom ones) fire as long as they aren't in another templated control. Since the code is complicated, I didn't want to post it all here.
We are creating a composite server control. It will have few other controls. I am confused where exactly to write the code ie in which event. Is page life cycle and control life cycle follow the same event order?
I am creating a composite control. On the selection of item in the dropdownlist, the result should be shown. But its mismatching the result. Here is the code for the control:
[Code]....
If I have a breakpoint on the selection index changed event of the dropdownlist, then on every selection it should go to the event. Problem is when I select an item which makes the "singlelineText" textbox to appear and after it I select any other item, it doesn't stop at the dropdown event instead it goes to the "CreateChildControls" method of the composite control which results in wrong data.
I made a composite control that contains a ListBox. I am using the Composite Control throughout my application but I can not bind the listbox in the Compositecontrol. I have setup a Public get to access my listbox in the composite control.
I am trying to make a PhoneNumber Control. I inherit from Composite Control. It contains 5 controls : 1 Label (Text to show before), 3 TextBoxes(area, prefix and line) and a Custom Validator. What I want to happen is the validator to validate the control is belongs to in two ways: 1. that the field is required and 2. That the COMBINED text of the 3 textboxes is 10 digits. I believe i can accomplish this with the expression ^d{10}$. Now I have it about halfway working, it will validate the control using client-side embeded validation on a submit click, however I need the control to validate as soon as the text of any of the boxes changes. I know this is done on the aspx page by using a Custom Validator -> specifying client and server side validation functions -> and then at end of page doing ValidatorHookupControlID(control, va lidator). My goal is to do all of this within the control to clean aspx code and make it more reusable.
My CompositeControl creates dinamically several RadioButtonLists according to the DataSource information. These controls are added to the Controls list and rendered in CreateChildControls event.
I need to create a LinkButton that clear a specific RadioButtonList selection and do a postback, to load the DataSource information again (some selections changes the data that need to be loaded from the database). For each RadioButtonList, I've put a LinkButton and assigned the Click Event to a method inside the same CompositeControl, to do the RadioButtonList cleaning.
Unfortunatelly, the LinkButton doesn't trigger the Click Event. In HTML code, the link has the "onclick" attribute setted with the asp.net event, but when clicked, nothing happens.
I would like to ask you what is the best practice for developing composite user web control with multiple controls inside from the stand point of dealing with properieties. In my situation I would like to use header menu bar with logos, buttons, java baset visible/hidden menus itc as web control. I was successfull in implementing new control in my project.
But my question goes to issue of properties for ALL OF controls. I know how to hard code all required properties like: text, visible, enable for all controls. It's a lot of work. ( This is the very edge of my asp.net comprehension ) Is there a more elegant way provide an access to controls's properties without hard coding seperatelly?
I am writing a custom composite WebControl and want to expose styles of child controls it encapsulates to the ASP.NET designer. The code I currently have is similar to the skeleton below (which for simplicity only has one child control).
With the code below, I can see property "ChildPanelStyle" in the designer, but when I try to modify one of the properties (e.g. CssClass) in the designer, it immediately resets itself to its default value. It looks like the designer serialization isn't happening.
What am I doing wrong?
UPDATE
I've updated the sample with an additional style property that is managed directly by the custom control, rather than simply being the property of a child control.
The HeaderStyle property is persisted properly by the designer, but the ChildPanelStyle property isn't.
Of course I could manage all my styles like HeaderStyle, and apply them during rendering, but I'm hoping there's a simpler solution whereby child controls can take care of themselves, and I don't need any custom rendering.
I have a composite user control consisting of three standard table cells (a legend, an image with a tool tip, and a text field control). If I add these to a TableRow in my aspx page it works fine and produces legal HTML in my source. The below works fine ...
However when I try to do the same programmatically (C#) the TableRow won't accept anything in its Controls collection that isn't a TableCell. I could make my control a nested table in its own right but I lose the alignment of my form items on the page with multiple controls, as each table aligns itself according to its contents. Is there anyway I can make the TableRow accept my control as collection of cells or do I need to do some casting or making my user control inherit some kind of TableCell attributes? I can also dynamically add my controls to a TableCell item which actually displays OK in IE but creates illegal HTML (<td><td></td><td> ... </td></td> - I assume this is illegal) in my resulting source. The code below DOES NOT work ...
I have a composite control that returns a different control depending on a property value. The works however I can't seem to set the value of a textbox or the selected item in a dropdown list. Code does not produce error. What am i missing here??
I am trying to included a rating control in a composite control that renders many different type of controls. I render the controls by overriding the rendercontents so that I can control the layout of the controls. When I try to add the rating control to the output i get a Page cannot be null error. Can someone provide me with the proper way to render a rating control from a composite control and be able to control the layout of the child controls.
I'm trying to develope a collapsible panel control with designer.
I have the following two classes:
[Code]....
and this one:
[Code]....
In fact, the designer class is a copy of a sample class in MSDN and I only tried to customize it to work for me. I'm not sure if all methods are necessary or not.
I have the following two questions:
1- When I use this contrl in design mode, I can add or delete controls to it, in the html view, tags are not updated. so when I close the page and open it again, all changes are lost.
2- I have added this control to the same asp.net project that is using this control. Isn't there any way to have this controil in tool box?
I have created a really simple custom control to render panels into a page. The code is below. When I use my control and add any webcontrol to it, after each page postback the contents of these child controls vanishes.
I must have missed something really simple but run the example to reproduce this. Can anyone please enlighten me as to why the controls are being 'emptied' of their contents, and how I stop this occuring?
I'm building an n-tier application, with the web client and the class library separate. I'm also using the factory pattern of development, using interfaces to act as containers for different objects they are associated with. The problem I'm expreriencing is that I declared a public interface class in the class library and I can create an instance of it in in my aspx pages but whenever I declare it in my custom control code-side, i get an error, like so:
Error 20 The type or namespace name 'IContentMaker' could not be found (are you missing a using directive or an assembly reference?)
notge that I have inherited the class library namespace using the 'using' keyword just in case you are wondering. My code is like so:
using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using TQO_Classes ; //importing the class library project public partial class PageContentMgr : System.Web.UI.UserControl { private IContentMaker _data; //this line throws the error, it works fine on aspx pages
I have an ASP.net web application project written in VB. Am trying to test a cobbed-together "MyTreeview" control put together from C# code that's been converted.
I think this will come "close" to what I'm trying to do - just get a treenode to have a CSS tag and render properly.
I have an App_LocalResources directory and a file called CustomTreeNode.vb. Inside that file is the following code:
I have a Custom Server Control with a Collapsible Panel Extender. I want to be able to keep the Collapsable state (open or closed) when doing a Post Back.
Iam developing a custom checkbox control deriving from the 'compositecontrol' which i need to use it for a composite control purpose.
public class TngCheckBox : CompositeControl {
i have written the required properties which are working fine except the "checked" property. here is my code for 'checked' property. i tried both the below ways (commented one and not commneted) . the problem is the 'checked' value is not setting the value at the get set part of the property.its assigning the value at the design time , but when i check and uncheck its not updating the property value.which is resulting me wrong .
Iam developing a custom checkbox control deriving from the 'compositecontrol' which i need to use it for a composite control purpose.
public class TngCheckBox : CompositeControl {
i have written the required properties which are working fine except the "checked" property. here is my code for 'checked' property. i tried both the below ways (commented one and not commneted) . the problem is the 'checked' value is not setting the value at the get set part of the property.its assigning the value at the design time , but when i check and uncheck its not updating the property value.which is resulting me wrong .