Custom Server Controls :: Create A Custom Control From Currently Have Within A Modal Popup?
Feb 24, 2011
I have currently on multiple pages a modal popup that displays the information below, we are getting to the point where we need to call this popup from multiple locations, currently i have duplicate setups on each page that i want to use it on, but its becoming a mess to manage when a change is needed.. so im looking to see if what i have within the modal popup can be turned into a control that i can call anywhere thru out the site and have just 1 setup to maintain going forward..If its possible to create a control that can then be placed within the modal popup and server the same purpose that would be great any links here is what i have within the modal popup that i have on atleast 3 pages currently..
I have a user control SearchCriteriaCtrlr.ascx(see below).In this user control, I have a javascript code for filtering listbox values.I am firing this javascript for
<asp:TextBox ID="txtSearch" runat="server" onkeyup="FilterItems(this.value)"></asp:TextBox> Problem:The problem is, my filter javascript is not working SearchCriteriaCtrlr.ascx <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchCriteriaCtrlr.ascx.cs" Inherits="TimecardAdmin.SearchCriteriaCtrlr" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> <link href="Styles/Site.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> //variables for holding different values var ddlText, ddlValue, ddl, lblMesg; function CacheItems() { //Array for holding Text ddlText = new Array(); //Array for holding Value ddlValue = new Array(); //Listbox value ddl = document.getElementById("<%=lstSource.ClientID %>"); //Looping through all values of listbox for (var i = 0; i < ddl.options.length; i++) { ddlText[ddlText.length] = ddl.options[i].text; ddlValue[ddlValue.length] = ddl.options[i].value; } } window.onload = CacheItems; //function for filtering items function FilterItems(value) { ddl.options.length = 0;.....................
I am trying to create a web custom control but I am unable to find the templete that should be in my projects window. I am using Visual Studio Pro and it should be there. Doc's say standard version doesn't have it but thats all I can find.
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 want to create a custom control where I define several specifically named DIV sections. The code-behind logic of the custom control will perform operations on these named DIV sections. The page where the custom control is hosted needs to be able to add named controls to the DIV sections and perform operations on these named controls added to the DIV sections.
Let me explain a little further. In the custom control, I want to have code behind logic that fires the following Page Event and uses a condition to make one or another specifically named DIV section visible or not:
< _ ToolboxData("<{0}:BaseDetails runat=""server""></{0}:BaseDetails>") _ > _ Public Class BaseDetails
[code]...
how can I create a custom control which is able to generate the named DIV sections "DetailsNameDiv1" and "DetailsNameDiv2" where my custom control can check a condition and make one or the other visible. Also, I need to be able to add controls to these named DIV sections when I host the custom control and the control that I add to the named DIV section needs to let me set values of these controls from the code behind logic of the page (or usercontrol) where the custom control is being hosted (in my example, I am adding TextBox controls that I want to set the Text property from a SQL Data Reader).
I want to create a custom Toolbox in asp.net which will contain all custom control that i have made. Now the user will drag these controls from custom toolbox at run time and create form. I tried but did not succeeded.
I have a custom control which inherit from the Table class and in the constructor, it takes a an integer as an argument. There is no empty constructor.
Is there a way for the user to set that variable in the properties window after they drag the control onto a form.
I know some .NET controls, you can set the source for the parameter to different things like another control's property, QueryString using just the properties window.
Right now, I have to create the control dynamically. I read the query string and then created the object.
here's a situation and I would appreciate your response.
I have programmatically created the Wizard control:
Page_Load(obj s, evargs e) { Wizard ClaimDetailWizard = new Wizard(); foreach(int item in selectedItems) { //create new step //added custom control to new step //add step to wizard } //added wizard to a placeholder on a page }
Based on List I get from Session i added new steps to my wizard To each step I had added a custom control
Each custom control in tern contains another custom Gridview Control in it.
So here's the problem when the page loads for example for two steps. All is good Wizard does what it's supposed to do.
But when I try to use sorting or paging in that custom Gridview. Somehow it displays the gridview I should see in the next step of the wizard.
Also what I'm noticing through debugging. Is that when I press next in the wizard I go back to the original page where I do all of the code specified above, and it recreates the wizzard. But it goes to the next step. Is this the way wizard supposed to work? Just doesn't seem very efficient.
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
public partial class AjaxUC : System.Web.UI.UserControl { private ITemplate _content = null; [TemplateInstance(TemplateInstance.Single)] [TemplateContainer(typeof(Container))] [PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Content { get { return _content; } set { _content = value; } } void Page_Init() { if (_content != null) { Container container = new Container(); _content.InstantiateIn(container); divContent.Controls.Add(container); lblSearchTitle.Text = LblModalSearchText; } } protected void Page_Load(object sender, EventArgs e) { if (hdVisible.Value=="true") { modalSearch.Show(); } } } public class Container : Control, INamingContainer { internal Container() { } }} This control when used on any aspx page will popup the control placed inside the template "divContent" as modalpopup. ________________________________________________________________________ Now I am trying to convert this user control to Custom Control and my code is:-
[ParseChildren(true)] [PersistChildren(true)] public class DNAWebAjaxTool : PlaceHolder { public event EventHandler BtnModalSearchCloseClickEvent; public event EventHandler Click; private ITemplate _content = null; private HtmlInputHidden _hdVisible; private Panel _pnlModalSearchContent; private Panel _pnlModalSearch; private ModalPopupExtender _modalSearch; private Button _btn; private DivContainer divContent = new DivContainer(); private string _viewState; public DNAWebAjaxTool() { } public Panel PnlModalSearchContent { get { if (_pnlModalSearchContent == null) { _pnlModalSearchContent = new Panel(); } return _pnlModalSearchContent; } } public ModalPopupExtender ModalSearch { get { if (_modalSearch == null) { _modalSearch = new ModalPopupExtender(); } return _modalSearch; } } public string ViewState { get { return _viewState; } set { _viewState = value; } } public HtmlInputHidden HdVisible { get { if (_hdVisible == null) { _hdVisible = new HtmlInputHidden(); } return _hdVisible; } } [TemplateInstance(TemplateInstance.Single)] [TemplateContainer(typeof(DivContainer))] [PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Content { get { return _content; } set { _content = value; } } protected override void OnInit(EventArgs e) { _content.InstantiateIn(divContent); base.Controls.Add(divContent); base.OnInit(e); } protected override void OnLoad(EventArgs e) { if (HdVisible.Value == "true") { ModalSearch.Show(); } base.OnLoad(e); } void _btn_Click(object sender, EventArgs e) { BtnModalSearchCloseClickEvent(sender, e); } public virtual void Hide() { PnlModalSearchContent.Visible = false; ModalSearch.Hide(); ViewState = "false"; } public virtual void Show() { PnlModalSearchContent.Visible = true; ModalSearch.Show(); ViewState = "true"; } protected override void CreateChildControls() { base.CreateChildControls(); } protected override void Render(HtmlTextWriter writer) { if (ViewState == "true") { _modalSearch = new ModalPopupExtender(); _modalSearch.ID = "modalSearch"; _modalSearch.TargetControlID = "btnHiddenSearch"; _modalSearch.PopupControlID = "pnlModalSearch"; _modalSearch.DropShadow = false; _modalSearch.RepositionMode = AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowResize; _modalSearch.Drag = false; _modalSearch.BackgroundCssClass = "modalBackground"; _modalSearch.Show(); _btn = new Button(); _btn.ID = "btnHiddenSearch"; _btn.Style.Value = "display: none"; _btn.RenderControl(writer); _pnlModalSearch = new Panel(); _pnlModalSearch.ID = "pnlModalSearch"; _pnlModalSearch.CssClass = "modalPopup"; _pnlModalSearch.RenderControl(writer); PnlModalSearchContent.ID = "pnlModalSearchContent"; PnlModalSearchContent.RenderControl(writer); divContent.RenderControl(writer); _btn = new Button(); _btn.ID = "btnModalSearchClose"; _btn.Text = "Close"; _btn.CausesValidation = false; _btn.Click += new EventHandler(_btn_Click); _btn.RenderControl(writer); } } } public class DivContainer : Control, INamingContainer { internal DivContainer() { } } ________________________________________________________________________________________________ The problem I am facing is that the modalpopup extennder is not coming up as a popup.
I have a custom control, that has takes some information from user and submit to the database. it is working fine in normal aspx pages. but when i display that custom user control in jQuery modal popup. The events does not fire or lets say the data is not submitted to the database.
created a Custom Textbox Control that is intended to be a "masked date" textbox, so that I can handle different ways a user might enter in a date and make it work no matter what.I did this by creating a custom control with 3 separate Textboxes one for month,one for day one for year,then do some handling for different things that could be entered and it would all work.
The problem I am having is,when I add this control to the page,if I do an alert to check the Text value of the custom control it just gives me "[ServerControl1]" even if I enter in a date.
I tried doing an AutoPostback after entering so that it would refesh the Viewstate to have the values of the textboxes but the control doesnt seem to actually postback, even though I have it enabled.accessing the Textbox value after someoen has entered a date?first custom control I have created and have been using google.
I am creating custom server control. I have two classes in project. One is main class that render control and another will be used to render content based on condition.I just want to know how to render content from other classes in main class.For example. This isjust an example.My main class code
[Code]....
My TopLeftPane class
[Code]....
My page code on page load event
[Code]....
When I run the page, Header title always getting null. This is a just sample code. I will have more than 20 classes so I dont want to write a code in main class to render whole control.I hope all of you understand my problem.
I have to use inline code for an aspx page and I need to use a custom server control that is defined in the same aspx page but the control does not get processed as a server control. it gets returned as is as static html tag.
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 .
I try to mak a custom textbox. Something pretty easy to do but I can't figure out one thing. When I write my textbox in designmode I have this <custom:Textbox runat="server" ID="Textbox1">Test</custom:Textbox> The problem is The textbox is a webcontrol I added to my class [Parsechildren(false)] like this [Parsechildren(false)]
public class Textbox : WebControl { }
now the problem is I want to able to write the Text from the textbox between the beginningtag and andingtag but I want to disable every other control in designmode. When I add < between the tags then you can see you can write all tags between it. disable all controls except literal between the tage in designmode?