Web Forms :: Access Controls In Templated User Control?
Dec 20, 2010
I am trying to access a control from the code behind in a tmeplated user control and and keep getting an object reference exception.
Is it possible to access these controls. I have tried the find control and just referencing the object i.e. this.someID, non of which worked.
Here is my templated control:
[Code]....
Here is the template ascx code:
[Code]....
Here is the test user control that is using the template:
[Code]....
Here is the codebehind for the test user control:
[Code]....
I have also tried this which throws the same error:
Label label = (Label)this.Page.FindControl( "DateTimeLabel2" );
label.Text = DateTime.Today.ToString();
View 2 Replies
Similar Messages:
Feb 8, 2011
I'm working on a user control that renders couple nested divs (a rounded corner box to be frank). This is a templated user control, which means that user can put any control he wants into the header, body or footer of this box. Everything is working fine, except the fact that server-side controls can't be retrived from my box. Take a look at this code:
[Code]....
Now codebehind of that control:
[Code]....
I have cut out all the unimportant stuff.Now when I use this control:
[Code]....
I want to access controls in page codebehind file (on Page Load): LiteralNewses.Text="";
but compiler returns an error that LiteralNewses doesn't exist. Also FindControl method can't find this literal.Any tips on what's wrong with this code? According to MSDN, setting TemplateInstance to Single ensures that controls from template will be accessible but not in my case...
View 1 Replies
Apr 15, 2010
I want to access a label in templated user control.
I find this code in internet, but it doesn't work.
Error:Object reference not set to an instance of an object.
public static Control FindControl(Control parent, string id)
{
Control recurse;
if (parent.ID == id)
[Code]....
View 4 Replies
Aug 11, 2010
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.
View 6 Replies
Nov 10, 2010
I have a ObjectDataSource and a ListView referencing it.
I have created a Templated User Control (see:
http://msdn.microsoft.com/en-us/library/36574bf6.aspx) and placed it in the ListView's InsertItemTemplate
It has one template <ContentTemplate>. Inside that template, I've defined a couple of server controls with their properties = '<%# Bind("colName") #>'.
See below:
[Code]......
View 8 Replies
Jan 27, 2010
I've created a templated user control by following the example on the microsoft support pages. I won't post it all but the important part of the CS file looks as follows:
[Code]....
I'm not sure if the whole _CurrentDataItem business is required, I don't think so.The problem I've got, is that I've tried nesting it inside a FormView control so I can use it to display a record from a database. My ASPX looks like this:
[Code]....
Now, the bound properties (TitleText and TitleSubText) bind correctly, but the nested / template content is blank when the page loads. I'm not sure if this is something to do with the order in which everything is loaded or because I'm missing some code in the SimpleTemplate to get it to bind (etc.).
View 2 Replies
Jun 11, 2010
I have to access the parent form's controls inside an event handler method on my user control's code behind.
View 4 Replies
Nov 16, 2010
I Have a webpage named "Test.aspx" and a web user control named "TestWebContro.ascx",..
i have a "Linkbutton" on "TestWebContro.ascx" and "Label" on "Test.aspx",.. now my query is how can we change the text value of "label" on the click event of "LinkButton",...
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; background-color: White">
View 3 Replies
Dec 1, 2010
I am developing an application in which I have to use a User Control.I have created a user control in which I am using
- A Label (whose text will be dynamic)
- 3 Textboxes (whose values will be also dynamic).
So far everything is working fine.Now I used this user control in a aspx page and at the page_load i have to loop thru all the instance of this user control and assign values to them and here the problem begins.The values are not being assigned to the controls.
Here is the code which i have written to loop thru User Control instances and assign values to them.
[Code]...
View 9 Replies
Apr 20, 2010
How to change the values in gridview on text change of templated control without databind again?the value of templated text boxes should change If i change the value of one of the templated textbox then accordingly(By mathematical calculations) the vlaues of all tempated textboxes should also change.
View 7 Replies
Nov 11, 2010
I am fairly new to asp.net programming. I found this custom control that uses ajax to update the contents of the control and it is working perfectly. However, I need to access some of the asp.net labels and images in the databound event so I can set their values/properties appropriately, and am not sure how to go about adding additional code or accessing these in my custom control (I have been googling endlessly with no results). My code for the custom control is below.
Imports System
Imports System.Text
Imports System.IO
Imports System.Collections
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports Microsoft.VisualBasic
Namespace myControls
Public Class AjaxDivView
Inherits CompositeDataBoundControl
Implements ICallbackEventHandler
Private _itemTemplate As ITemplate
''' <summary>
''' The ItemTemplate is used to format each item from the data source.
''' </summary>
<TemplateContainer(GetType(DivViewItem))> _
<PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property ItemTemplate() As ITemplate
Get
Return _itemTemplate
End Get
Set(ByVal value As ITemplate)
_itemTemplate = value
End Set
End Property
''' <summary>
''' Register Javascript
''' </summary>
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
'Register Refresh Function
Dim eRef As String = Page.ClientScript.GetCallbackEventReference(Me, Nothing, "AjaxDivView_Result", "'" & Me.ClientID & "'", "AjaxDivView_Error", False)
Dim refreshFunc As String = "function AjaxDivView_Refresh() {" & eRef & "}"
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), Me.UniqueID, refreshFunc, True)
MyBase.OnPreRender(e)
End Sub
''' <summary>
''' Iterate through the data items and instantiate each data item in a template.
''' </summary>
Protected Overloads Overrides Function CreateChildControls(ByVal dataSource As System.Collections.IEnumerable, ByVal dataBinding As Boolean) As Integer
Dim counter As Integer = 0
For Each dataItem As Object In dataSource
Dim contentItem As New DivViewItem(dataItem, counter)
_itemTemplate.InstantiateIn(contentItem)
Controls.Add(contentItem)
counter = counter + 1
Next
DataBind(False)
Return counter
End Function
''' <summary>
''' Render this control's contents in a Ul tag
''' </summary>
Protected Overrides ReadOnly Property TagKey() As System.Web.UI.HtmlTextWriterTag
Get
Return HtmlTextWriterTag.Div
End Get
End Property
''' <summary>
''' Render my contents to a string and send the result back to the client
''' </summary>
Public Function GetCallbackResult() As String Implements System.Web.UI.ICallbackEventHandler.GetCallbackResult
Dim builder As New StringBuilder()
Dim sWriter As New StringWriter(builder)
Dim hWriter As New HtmlTextWriter(sWriter)
Me.RenderContents(hWriter)
Return builder.ToString()
End Function
''' <summary>
''' Whenever I get called through AJAX, rebind my data.
''' </summary>
Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
Me.DataBind()
End Sub
Public Class DivViewItem
Inherits WebControl
Implements IDataItemContainer
Private _dataItem As Object
Private _index As Integer
Public ReadOnly Property DataItem() As Object Implements System.Web.UI.IDataItemContainer.DataItem
Get
Return _dataItem
End Get
End Property
Public ReadOnly Property DataItemIndex() As Integer Implements System.Web.UI.IDataItemContainer.DataItemIndex
Get
Return _index
End Get
End Property
Public ReadOnly Property DisplayIndex() As Integer Implements System.Web.UI.IDataItemContainer.DisplayIndex
Get
Return _index
End Get
End Property
Protected Overrides ReadOnly Property TagKey() As System.Web.UI.HtmlTextWriterTag
Get
Return HtmlTextWriterTag.Div
End Get
End Property
Public Sub New(ByVal dataItem As Object, ByVal index As Integer)
_dataItem = dataItem
_index = index
End Sub
End Class
End Class
End Namespace
View 5 Replies
Nov 9, 2010
I want to use a couple of instances of the same control on a page. The user control is intended to display a list of records in a repeater. The aim is that the second control will show a list excluding the IDs in the first control The control has a number of public properties, including IDsInThisList, and IDstoExclude. The query will exclude the IDs in the second property.
What I would like to do is get the record IDs from the first instance of the control (IDsInThisList), and pass them to the second contro as the IDsToExclude.
I have a test page where I am setting the properties of the controls in code. As you might guess, it's not working! The first control displays the top 3 items, as desired, but the second display the records 1-7, rather than records 4-10 because it is not receiving the IDstoExclude from the first control When I response write the IDstoExclude from the first control in my testpage, the string is empty. (if I do it from within the control, it shows the IDs)
How can I get the controls to fire in order and pass values to each other?
Screen grab of test page + uc and test page code attached
[Code]....
View 5 Replies
Jul 28, 2010
I have a requirement where i need to access the methods of one user control in another user control.
View 8 Replies
Feb 1, 2011
I'm working with Templated User Control's. In the final markup of the control, the data is being accessed by the Container keyword. I'm using the word 'keyword' freely, because I do not understand whether this is a keyword, or where the Container word is coming from. Below is an example from my book.
//Address User Control markup
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="AddressUcTemplated.ascx.cs" Inherits="AddressUcTemplated" %>
<asp:PlaceHolder runat="server"
ID="PlaceHolderAddressTemplate">
</asp:PlaceHolder>
--
//Address User Control code-behind
public partial class AddressUcTemplated :
System.Web.UI.UserControl
{
protected void Page_Init(object sender, EventArgs e)
{
//clear the controls from the placeholder
PlaceHolderAddressTemplate.Controls.Clear();
if (LayoutTemplate == null)
{
PlaceHolderAddressTemplate.Controls.Add(
new LiteralControl("No template defined."));
}
else
{
AddressUcContainer container = new
AddressUcContainer(this.Address);
this.LayoutTemplate.InstantiateIn(container);
//add the controls to the placeholder
PlaceHolderAddressTemplate.Controls.Add(container);
}
}
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateContainer(typeof(AddressUcContainer))]
public ITemplate LayoutTemplate { get; set; }
public Address Address { get; set; }
}
--
//Naming Container Class
public class AddressUcContainer : Control, INamingContainer
{
public AddressUcContainer(Address address)
{
this.Address = address;
}
public Address Address { get; set; }
}
--
//Page using the user control; the Container keyword is confusing me in the below //statement
...
<%@ Register src="AddressUcTemplated.ascx" tagname="AddressUcTemplated"
tagprefix="uc1" %>
<uc1:AddressUcTemplated ID="AddressUcTemplated1"
runat="server" AddressType="Home">
<LayoutTemplate>
<h1>Edit Home Address</h1>
<table>
<tr>
<td>Address Line 1:</td>
<td>
<asp:TextBox ID="TextBoxAddress" runat="server"
Text="<%#Container.Address.AddressLine1%>"></asp:TextBox>
...
View 1 Replies
Feb 7, 2011
I have a couple user controls that are loaded by a Select Case statement. However, in the behind code file for the main page that loads these controls, none of the asp controls show up in intellisense. I had a feeling it's because the controls are loaded conditionally. My question is what is the best way to solve this?
1) Load the controls and do a Select Case in the behind code to make them hidden or not.
2) Is there a way to say (psuedocode): LoadUserControl("UserControl1").Controls("tbTest").Text = ""
3) How can I pass a dataset to the User Control file?
[Code].....
View 1 Replies
Feb 18, 2011
here my code-
GridView gvCondition = (GridView)this.FindControl("ucCondition").FindControl("gvCondition");
gvCondition.DataSource = objConditionFieldCollection;
gvCondition.DataBind();
but it is throwing as exception Object reference not set to an instance of an object.How can I access user control's gridview control from parent page?
View 1 Replies
Dec 11, 2010
How can I access a webform control from a Web User Control?
I have a web form with some textboxes and dropdownlists. I created a Web User Control with other controls (other textboxes) inside it. Now I need to call from the web control source code the values that the controls in my web page have. How do I do it?
View 10 Replies
Mar 1, 2010
i have a Wizard control with 3 steps, in step 2 i have a formview, inside formview1 a have a label and a button.
When i click the button i would like the label to over wright the text of the label.
how can i access this label.
i tryed this with no success.
[Code]....
View 4 Replies
Dec 2, 2013
I have create one user control of personal details, and write the geting data from database method and Load the entities in respective field,then how to bind user control in gridview and how to accecc Id of user control in aspx page.
View 1 Replies
May 25, 2010
I want to be able to do something like this
<test:TabControl id="" runat="server"....>
<ItemTemplate>
<tabItem label="tab1" />
<tabItem label="tab2" />
</ItemTemplate>
</test>
The idea being here is that the only acceptable items in "ItemTemplates" are the tabitem types. There are many asp.net controls that use this, for example the ScriptManager class only allows you to specify certain types of objects under its various collections. Maybe thats the key to this.. I want to add a collection as opposed to a template. The idea is that in code I will then iterate over each "tabItem" and create the tab as I want it to look (probably rendering div's etc). Ive had a look at most of MSDN link on how to create templated controls but it doesnt seem to do exactly what I want it to. Would be grateful for some assistance.
View 1 Replies
Dec 30, 2010
I have DropDownList inside User Cotrol and i use this User Cotrol in my asp Page , in my page i have method that take paramter string
now i want to access the the DropDownList SelectedIndexChange from my page to execute the method by passing the DropDownListSelectedValue
(when user selecte value in dropdown list ,when it post back i watn to excute the method depent on value of selecte value )
View 2 Replies
Mar 11, 2011
How to access userControl's properties, when use FindControl method?
View 7 Replies
Sep 29, 2010
Context
I'm putting together a templated, databound control. Presently it works with the following syntax...
<cc:ItemChooserControl ID="ItemChooser" runat="server">
<TitleTemplate>
<h4><%# DataBinder.Eval(Container.DataItem, "DisplayName") %></h4>
</TitleTemplate>
</cc:ItemChooserControl>
Problem
What I would like though is that the shorter, simpler Eval would work instead.
<h4><%# Eval("DisplayName") %></h4>
What I get however when using straight Eval is an error:
Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.
Code
I'm databinding to a custom HtmlTableCell...
public class TitleTemplateTableCell: HtmlTableCell, INamingContainer
{
private object m_DataItem;
public virtual object DataItem
{
get { return m_DataItem; }
set { m_DataItem = value; }
}
}
With the following custom DataBind (non-related code removed)...
foreach (object dataItem in dataSource) {
TitleTemplateTableCell title = new TitleTemplateTableCell();
TitleTemplate.InstantiateIn(title); // TitleTemplate is the template property
title.DataItem = dataItem;
title.DataBind();
}
View 1 Replies
May 28, 2010
I'm creating a custom templated composite control. If there is no 'ItemTemplate' specified in the mark-up, how do I create a default template programmatically?
View 1 Replies
Apr 13, 2010
I'm having trouble to access a Parent's property in User Control. I don't know how to access the parent. The Parent Page's name is Search.aspx. I saw the example below and tried it:
[Code]....
Than I could access the Parent's Property, but when I ran the website I got these errors:
1. The user control is not declared in the parent page
2. The user contol has a circular reference
View 3 Replies