Custom Server Controls :: Composite Control - Design Time Gridview Is Not Displaying?
Apr 19, 2010I have use composite custome control its contain button and textbox and gridveiw
but design time gridview is not display .
I have use composite custome control its contain button and textbox and gridveiw
but design time gridview is not display .
I am designing an ASP.NET v3.5 custom control based on CompositeControl.
However, I do NOT want to create my child controls via code, but rather as
embedded HTML tag elements within the CompositeControl in the ASPX page, such as:
[code]....
At run time, MyControl.Controls contains the two labels as expected.
At design time, MyControl.Controls is empty.
I need this information at design time for various reasons.
What am I doing wrong?
I was referred here by MSDN forums hope this is the right place - I have a custom control (:WebControl) that renders web.sitemap in a specific way. While it runs error free and produces the expected result, at Design-Time it complains
[Code]....
and have tried the SiteMapDataProvider Tag with and without the SiteMapProvider
attribute.Does anybody have (a) any experience with this, or (b) any suggestions as to how to track down the problem?
i create a composite control as can be seen in code below, and add this control to webform, assign FormView1 to the HeaderControlName property, Run the page, the system will generate parse error message :
Cannot create an object of type 'System.Web.UI.WebControls.FormView' from its string representation 'FormView1' for the 'HeaderControlName' property. However, if i don't assign FormView1 in design screen and manually (through coding) assign FormView1 to the custom control on init, it works as expected.
custom control
public class CmdTest : CompositeControl
{
public virtual FormView HeaderControlName
{
get
{
object oObject = ViewState["HeaderControlName"];
return (oObject == null) ? null : (FormView)oObject;
}
set
{
ViewState["HeaderControlName"] = value;
}
}
protected override void CreateChildControls(
{
Controls.Clear();
Button xx = new Button();
Controls.Add(xx);
}
}
webpage.aspx (assign FormView1 in design time, it will generate error)
<Utils:CmdTest ID="CmdTest1" runat="server" HeaderControlName="FormView1" />
webpage.aspx (didn't assign FormView1 in ASPX, but assign it on Init Code, it works)
<Utils:CmdTest ID="CmdTest1" runat="server" oninit="CmdTest1_Init" />
Webpage.aspx.cs
protected void BsCmdTest1_Init(object sender, EventArgs e)
{
CmdTest1.HeaderControlName = FormView1;
}
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
View 1 RepliesI 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.
according to what i read from web there 3 types of custom server controls
1. composite
2.superclass
3.rendered
i found video tutorial to create and use superclass custom control in your project (extending dropdown control functionality)
i am trying to search video tutorial for other 2 types .
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.
View 3 RepliesI'm developing a custom server control and want it to end with /> rather than with </cc1:CustCtrl>. I've tried changing the ToolboxData but it didn't really do it (I can see it initially appears like that but instantly changes to the standard <cc1:CustCtrl blah blah></cc1:CustCtrl>. When i drag a button from the toolbox to the forms markup it uses the <asp:Button blah blah /> markup, how can I emulate this?
View 3 RepliesI 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.
View 3 RepliesI 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.
[code]...
I have build a composite control containing a Label, TextBox and a ImageButton. The idea:
Label text | textbox | imagebutton used for triggering an event
This textbox has a build-in validation.
When the imagebutton is set, i will use this imagebutton as a trigger. This imagebutton has an onclick event. Nou my problem is the following:
When i have my textbox on a form an click a button to validate my textbox validation takes place correctly.
If my textbox has the imagebutton enabled and i click this imagebutton validation takes place.
In my composite control i have implicity set imagebutton.CausesValidation = false;
i create a custom control which can hold some templates, such as Header, Body Footer, etc.
[Code]....
i tried to use smarttags to allow the user to edit each of the templates, which worked pretty well. what i could not get working was to add a template if it has not been in the control. eg. add a header-template to the control above. i tried using the RootDesigner.AddControlToDocument() function of my controldesigner. but this function gives me an error, telling me the control i'm going to add the template (i used a new HtmlGenericControl("HeaderTemplate") as new Control) to is not valid. (i can't give the exact error message, cause i use a german version of visual studio 2008) i've been searching the web for nearly half a day now, but i did'nt find a working solution for my problem.
I have created an advanced label control using web user control to cater some advanced options needed for my application. The control is working fine but there is one hitch bothering me. In normal label control when we change text or color, we can see effects during design time also but this is not functional with web user control. I mean when i change TEXT property of my label inside user control, the effect is visible on runtime not design time.
Is there any way to see effect of property changes during design time??
I have a custom Panel with attribute Designer(typeof(xxxMainPanelEditor), typeof(System.Web.UI.Design.WebControls.PanelContainerDesigner)). The child controls of this custom Panel Control at design time can see all the exposed properties that I want to share from the Parent (no problem here).
However, if I place controls on an UpdatePanel, these child controls cannot see the parent container but instead, it immediately sees the form/page or DesignerHost. The problem is the same even if I put Panel on the UpdatePanel and vise versa.
Is there a way to manage controls inside an update panel? For me, this behavior is like saying that UpdatePanel is not container based during design time?
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?
How to set default Height/Width property value of Composite control
[Code]....
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 ...
<tr><MyControl:dataField
ID="txtEmail"
DataType="Email"
runat="server"
/></tr>
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 ...
[Code]....
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??
[Code]....
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 custom control from scratch and it works fine as in you can build the project that uses it and it works fine at runtime. Problem is when you go to design view the control shows an error in the place of where the control should be rendered.
Error: '<SomeValue>' Could not be set to '<SomeProperty>'
This shows up on all my custom set properties. These properties are created as basic as possible. I can give the properties values in Source view and run the app just fine. I can even add a Onclick event. If I don't set any custom properties the control will render fine in Design view. It's only when I set a value to a custom property.
Property Code Example:
[Code]....
I've even removed the Category and Description tags with no difference.
I don't know if what I said makes sens, but I hope it does.
I seriously want to learn how to create a custom server control, for that I made a requirement for myself, but lost on how to accomplish it.
Requirement -I want to create a cascading dropdownlist control - which should have following properties -1) ConnectionString - used to get data for the 1st dropdown from database, and also it is used by 2nd DropDown to get data.2) 1stSelectCommand - Used by the 1st DropDown to get data from the database.3) 2ndWhereCommand - used by the 2nd DropDown - uses the selected value from the 1st DropDown in the where clause to get data.
Methods - 1) DropDown1_SelectedIndexChanged()2) DropDown2_SelectedIndexChanged(3) CustomCascading_Changed() - this happens when any of the DropDowns index changed.
PS - This is a random requirement, of course it got nothing to do with any project or real time.I want to learn, so i incorporated basic concepts like Data Access, Custom Methods, Properties etc.PPS - I know how to create basic custom server control, so plz dont forward me links to how to create basic custom server controls. But in case with extrordinary links.
I created an Extender which has a custom property that drills down a list XML elements from an xml file, where users can select xml elements during design-time. This works perfectly fine. However, my code only has a hardcoded xml filename (source of the xml elements list) and I need to change this by maxing the xml file user-specified.
What I did is that I created another control (panel) which has a custom property that when clicked (through the ellipsis), it will allow a developer to select the xml file which is supposed to be the source xml file that the Extenders shall use. The filedialog from custom panel's property works perfectly fine.
However, my problem now is that when I drag-drop my Extender, I cannot find a way to get the property value of the custom Panel Control which contains the xml filename. I tried creating a static variable which I thought the custom controls can share but VS2010 is breaking.