Custom Server Controls :: Declaratively Adding ListItem(s) To DropDownList In A UserControl?
May 13, 2010
[VS 2010 RC1, .NET 4.0, VB.NET]
I'm working with a simple UserControl someone at my company created. It's basically just a DropDownList with a RequiredFieldValidator and some added properties (such as "Required", which controls the CSS styling of the DropDownList and whether the RequiredFieldValidator is Enabled or not).
Here is an example of the UserControl usage where a SqlDataSource is used to populate the ListItemCollection. I'm trying to specify an intial ListItem below (and would like the ability to add multilple ListItems if necessary) but can't seem to get this to work...
[Code]....
My code-behind looks as follows:
[Code]....
I've found several posts related to this but cannot seem to get the declarative ListItem to be added to the DropDownList.
I understand that using a WebControl is another option, but I'd like to learn how to get this method to work if possible.
I have a user control that consistes of a dropdown menu, a label, a textbox and a button. It resides in a html table, what i would like to do is on a keypress, such as the "insert" key, i would like to add the same control again directly on the next row, I have used programs that do this, but for the life of me can't figure out how its done...
Here is what I am trying to do. I have a page with two link buttons and an updatepanel (the two linkbuttons trigger the updatepanel). I have two usercontrols which have labels with same ID's. When I click the first link button, I add the first usercontrol to the updatepanel and set the label value to datetime.now
when i click the second link button i add the second usercontrol but i see that the value of the label from the first control is set in the label in second user control. if the id's are different there is no problem - but in my case the usercontrols are being developed by different teams and I am integrating them in the way i mentioned - so they may have same ids.
I have a particular scenario and I would like to know how I can implement it in the most efficient way. I also have some queries related to this. The application is a AJAX 1.0-Enabled ASP.NET 2.0 Web application.
I have a link, which when clicked I need to show a pop-up div. The contents of the div will be displayed using a usercontrol. The usercontrol will display the contents based on a query string value.
I would like to know:
1. How can I implement this in the most effecient way. I don't want to use a separate page on which I will have the usercontrol and then display the page in the div.
2. Suppose I call a JS function ShowDiv() on the click of the link, to display the pop-up div. Say, I call the function this way ShowDiv('querystring'). Now how will I pass the value 'querystring' to my usercontrol.
I have created lots of UserControls, but never tried CustomControl.Recently i created a Photo Gallery UserControl using Listview & Visual LightBox.Now i want to publish it as CustomControl.Here is my UserControl's code :
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 have custom gridview that inherit from the regular gridview.
On of the features is that is has a built in page size dropdown in an extra header row.
Another feature is that this extra header row has a place holder where aditional controls can be added but here is where I have some problems.
When I add a control that is created outside the gridview to the gridviews builtin placeholder and tries to do anything that performs a postback the gridview dissepears, but appears again on a new post back.
Here is the code for the gridview:
[Code]....
And this is the way it is used in a usercontrol on page, the gridview is called gvList and the control that I try to add to its placeholder is the phrExtraHeaderControls:
[Code]....
What can be wrong, is the viewstate messed up in the postback so that the gridview can't be rendered?
I created a customDropdown usercontrol with Events and It worked fine.
Now I stored the path of the ascx file in the database table and i want to Load the ascx file and handle the Events dynamically in an aspx page.
To Load the usercontrol and access the public properties and method, I need to know the object i am trying to load, right?
For Example
FeaturedDDL c = (FeaturedDDL)Page.LoadControl("~/FeaturedDDL.ascx").
But I dont want to hardcode objectType "FeaturedDDL", coz i dont have that stored in my Database field.
Since I am loading the usercontrol by getting the path and name of the usercontrol from the database table,how will I know the ObjectType at that time?
How to accomplish that and also how to handle the events for these type of situation?
I tried both, loading the usercontrol when needed and I also tried adding it directly into the aspx.
Nothing worked. With the second one (what's meant to be the easiest option) I tried with delegates and events (but can't access de usercontrol event from page) and tried with properties (I can access properties but they're always empty)
How can I create a UserControl with a collection-type property which has a collection editor?
I've a CompositeControl with an ArrayList-type property which has CollectionEditor-type designer. You can see this property on Properties window with a "..." button which launches a collection editor. This works fine and all but I want to apply the same to a UserControl and I've couldn't manage to pull it off so far. I've done the same thing what I've done with my CompositeControl but the property either doesn't even show on Properties window of the UserControl or shows as a single value property with no "..." editor button.
The attribute is not rendered to the client, even when the custom namespace is declared in the html element like: <html xmlns= [URL] Does anyone know of a way to get this to render to the client, without having to use a custom control. A module or other globally "pluggable" solution would be acceptable.
I have a DetailsView control bound to an ObjectDataSource within a User Control (.ascx). It appears that the DetailsView.OnDataBound event is being fired on every page load or postback.
I do not see this behavior with a similiar DetailsView directly placed on an aspx page.
I'm attempting to create a custom control that extends the Table class. Inside of the table will be rendered a number of different controls based on a specified identifying property. On some of these controls, however, I need to specify validation for data types and requirement.To me, the most logical way of doing so is to add validators to the table and set their appropriate properties to specify which controls to validate. In doing so, however, I've discovered that none of the validators added will even render on the page in which the control is added. So is this a valid construct?Here's an example of what I mean:
I've been working on this project for a few days now, and have been unable to resolve the issue of getting intellisense support for my custom-defined inner properties for a user control (ascx, mind you). I have seen the solution to this (using server controls, .cs mind you) many times. Spelled out in this article very well. Everything works for me while using ascx controls except intellisense. Here's the outline of my code:
[PersistChildren(true)] [ParseChildren(typeof(BreadCrumbItem))] [ControlBuilder(typeof(BreadCrumbItem))] public partial class styledcontrols_buttons_BreadCrumb : System.Web.UI.UserControl { ... [PersistenceMode(PersistenceMode.InnerDefaultProperty)] public List<BreadCrumbItem> BreadCrumbItems { get { return _breadCrumbItems; } set { _breadCrumbItems = value; } } ... protected override void AddParsedSubObject(object obj) { base.AddParsedSubObject(obj); if (obj is BreadCrumbItem) BreadCrumbItems.Add(obj as BreadCrumbItem); } ... public class BreadCrumbItem : ControlBuilder { public string Text { get; set; } public string NavigateURL { get; set; } public override Type GetChildControlType(string tagName, System.Collections.IDictionary attribs) { if (String.Compare(tagName, "BreadCrumbItem", true) == 0) { return typeof(BreadCrumbItem); } return null; } } }
Here's my mark up (which works fine, just no intellisense on the child object declarations):
I think the issue lies with how the intellisense engine traverses supporting classes. All the working examples I see of this are not ascx, but Web Server Controls (cs, in a compiled assembly).
Now i have a dropdown combo which is manually binded to Builder Table , what i want is that it would disable all those builders in the dropdown to be selected which are residing in Project Table.
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.
The built in Asp.Net Controls (label, Textbox, etc.) all have a CssClass property that can be set, what do I need to do to implement that for a Web User Control?
I know how to add a property and pass thru the get & set to the corresponding Asp.Net control (example if I have a label I know how to create a LabelCssClass property that provides a get & set, but the control itself how do I set a CssClass or ClassName property.
'm trying to add validation support to DropDownList by creating a custom control inheriting from DropDownList.To avoid naming conflicts my dropDownList implements INamingContainer. Unfortunately when I try using this control I get the following exception:Unable to find control id 'MDD' referenced by the 'ControlToValidate' property of 'MDD_Validator'This is my control:
[Code]....
I found out that excecption occurs because for INamingContainer FindControl(NamingContainerId) returns null, therefore validator cannot find dropdown.When I remove INamingContainer implementation everything works fine, but then ID given to the validator is not associated with that of DropDown.I know I can manually set validator ID to have DropDown.ID + "_" as a prefix, but is there any way to accomplish this using INamingContainer ?