Null - Get Control In PreInit Event?
Jul 1, 2010
How to get control in ASP.NET PreInit event? Pointers are null and FindControl method returns null.
I am using master and content pages. Markup of the content page looks like this:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentBody" runat="server">
<asp:Table ID="Table1" runat="server" Width="100%">
.....
</asp:Table>
</asp:Content>
And code like this:
private void Page_PreInit(object sender, EventArgs e)
{
Control table = this.FindControl("Table1");
//table is null here
}
So table still is null after this.FindControl("Table1"). NamingContainer of the page is null too. What am I doing wrong?
UPDATE I have to use this event to create controls. As said in the ASP.NET Page Life Cycle Overview this event should be used for dynamic control creation. I need to create a list of links in my table. May be there is another way to do it?
View 1 Replies
Similar Messages:
Mar 29, 2011
I have a content page with a grid view control in it. In the page preinit event of this page, i am trying to add a column to the grid view. But the value of the grid view shows up as null. Is there something i am missing or how do we add properties to the grid view in the page pre init of the content page.
View 3 Replies
Feb 4, 2011
how can we add Page's PreInit event programatically in code behind with c# language ? More precisely i would like to say if AutoEventWireup is set to false then how to handle Page's PreInit event ?
View 4 Replies
May 13, 2010
I have a master page and i am changing the masterpage file property to some other master page dynamically in the page PreInit event and that changing url is taken from a viewstate. but the view state is not getting in the pre init event.
View 2 Replies
Mar 1, 2010
the exact difference between PreInit and Init in the ASP.NET Page LifeCycle ?
View 10 Replies
Feb 8, 2011
How to get postback data in page preinit stage? Can I do that?
View 2 Replies
Jan 14, 2010
i am writing a login page in asp.net c# not using login control.i can create account and log in without problems as a user.the pages that require login has a separate master page.and i want to check if the user is logged in in masterpage page_preinit function but the problem is that child page event functions are called before masterpage's so i could experience a problem like session expire in child page before i get to check it in master page.is there anyway around this?
ok found the event im looking for. second one on the list
http://msdn.microsoft.com/en-us/library/dct97kc3.aspx
View 2 Replies
Mar 10, 2010
I see from around in the 1.4.4 source that Autofac's ASP.NET integration (via Autofac.Integration.Web) peforms injection of properties on the Page as part of the HttpContext.PreRequestHandlerExecute event handling, but that the page's child controls don't get their properties injected until Page.PreLoad.
What this means, though is that the injected properties of child controls are unavailable for use in the OnInit event handler.
For example, this works fine:
HelloWorld.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HelloWorld.aspx.cs" Inherits="HelloWorld" %>
<html>
<body>
<asp:Label runat="server" id="lblMsg" OnInit="HandleInit"/>.........
But changing the HelloWorld Page to a UserControl (.acsx) and putting the UserControl in another page doesn't work because _msgProvider isn't injected early enough.
Is there a way to make Autofac inject properties of child controls earlier?
View 1 Replies
Mar 10, 2011
I understand I need to load my dynmaic control on every postback and preferrably in Page_Init(). But my dyanmic controls are loaded from a dropdownlist selectedindexchanged event handler. Now after any postback, my dynamic controls are gone. How would I force it to load on every postback ?
View 2 Replies
Oct 25, 2010
I am using a CustomValidator in ASP.NET as follows:
<asp:CustomValidator ID="cvComment" ControlToValidate="txtComment" Display="None"
EnableClientScript="true" ClientValidationFunction="validateComment"
runat="server" ></asp:CustomValidator>
And this is the function that gets called:
function validateComment(source, args) {
var reComment = new RegExp("^[a-zA-Z0-9',!;?@#%*.s]{1,1000}$");
var validComment = reComment.test(window.event.srcElement.value);
if (!validComment)
alert("The comment has illegal characters");
args.IsValid = validComment;
}
Upon clicking the button that triggers the validator, the application breaks and I can see that the window.event property is null, so obviously there's a null reference trying to match the regEx. My question is why could the window.event be showing up as null? I could've sworn this was working before.
EDIT:
I have modified the function as such:
var check = document.getElementById(source.id);
var checky = check.attributes["controltovalidate"].value;
var checkyo = document.getElementById(checky);
var validHour = reOutHour.test(checkyo.value);
if (!validHour)
alert("The time is incorrectly formatted");
args.IsValid = validHour;
Now this is working on Internet Explorer, but not on Firefox...
View 1 Replies
Dec 15, 2010
let me see if I can explain this clearly. I have a gridview control
and I am trying to use the Edit function. In my gridview, there are numerous rows. I pick one to change and click Edit. I then see the boss name in my gridview and click "Change". When I click Change, I'm expecting two fields to appear, one is a label, the other is a DropDownList. I get this error when I click:
System.NullReferenceException was unhandled by user code
Message=Object reference not set to an instance of an object.
Source=App_Web_lzmklgbg
StackTrace:
at Training_TRManageOrg.LinkButton1_Click(Object sender, EventArgs e) in d:projectsediting.aspx.cs:line 108
at System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e)
at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
Gridview HTML:
<asp:TemplateField HeaderText="Director">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("director") %>'></asp:Label>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Change</asp:LinkButton>
<asp:Label ID="Label4" runat="server" Text="Director" Visible="False"></asp:Label>
-
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="trDirector"
DataTextField="name" DataValueField="id" onselectedindexchanged="DropDownList2_SelectedIndexChanged"
Visible="False"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("director") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Code Behind:
protected void LinkButton1_Click(object sender, EventArgs e)
{
DropDownList DropDownList1 = ((DropDownList)FindControl("DropDownList1"));
DropDownList1.Visible = true; // this line is where the exception occurs
Label3.Visible = true;
}
I figure I must be overlooking something so I'm asking what am I missing?
View 4 Replies
Mar 27, 2011
When trying to use the editor control i'm getting the following error:
Value cannot be null or empty.
Parameter name: elementID
Here's my HTML:
[code]....
I'm using asp.net 4 with ajax control toolkit for version 4.
I believe the error is talking about the routing I have. Is there something special I have to do if I want to use the toolkit and custom routing?
View 1 Replies
Jul 22, 2010
I wanted to get the total row count in a GridView's databound event handler, so I tried the following:
protected void grid_DataBound(object sender, EventArgs e)
{
GridView grid = (GridView)sender;
DataSet data = grid.DataSource as DataSet;
if (data == null)
return;
int totalRows = data.Tables[0].Rows.Count;
}
The problem is that the grid.DataSource property is null. The DataSourceID property is not null, so does that mean that I can't access the DataSource object in the DataBound event handler unless I assign the DataSource property directly?
Edit1: Here is the code in my GridHelper class for adding rowcount to the BottomPagerRow. I would like to get rid of the requirement to pass in the ObjectDataSource, but can't because I need to use the Selected event to get total row count. Hence the reason for the question. I also think this might be better in a custom control where I can access ViewState, and/or create child controls during the Init event (I still have a problem to resolve with the way the pager renders with an extra cell), but then I'd still have the problem of how to get to the total row count when the DataSource itself doesn't appear to be available in any GridView events.
Edit 2: Not really relevant to the specific problem, but I resolved the problem I was having with the pager rendering so i've updated the code posted. I found the trick here: [URL]
#region Fields
private int totalRows = -1;
#endregion
#region Constructors
/// <summary>
/// Initializes a new instance of the <see cref="GridHelper"/> class.
/// Adds EventHandlers to the GridView to display results from the ObjectDataSource in the footer.
/// Marked as obsolete because AddResultsToFooter method provides a static access to the same functionality
/// An instance of GridHelper is required by the passed in GridView to store the totalRows value between the two event handlers
/// </summary>
/// <param name="grid">The grid.</param>
/// <param name="source">The ObjectDataSource linked to the GridView.</param>
[Obsolete("Use AddResultsToFooter instead.")]
[EditorBrowsable(EditorBrowsableState.Never)]
public GridHelper(GridView grid, ObjectDataSource source)
{
source.Selected += source_Selected;
grid.PreRender += grid_PreRender;
}
#endregion
#region Event Handlers
private void grid_PreRender(object sender, EventArgs e)
{
GridView grid = (GridView)sender;
if (grid.HeaderRow != null)
grid.HeaderRow.TableSection = TableRowSection.TableHeader;
//Add a cell to the bottom pager row to display the total results
if (grid.BottomPagerRow == null || !grid.BottomPagerRow.Visible)
return;
//Get the control used to render the pager
//http://michaelmerrell.com/2010/01/dynamically-modifying-the-asp-net-gridview-paging-control/
Table tblPager = grid.BottomPagerRow.Cells[0].Controls[0] as Table;
if (tblPager == null)
return;
if (totalRows < 0)
{
//The DataSource has not been refreshed so get totalRows from round trip to client
addResultsToPagerTable(tblPager, grid.Attributes["results"]);
return;
}
int firstRow = grid.PageIndex * grid.PageSize + 1;
int lastRow = firstRow + grid.Rows.Count - 1;
string results;
if (totalRows <= grid.PageSize)
results = string.Format("<span class='grid-pager'>{0} Results</span>", totalRows);
else
results = string.Format("Results <b>{0}</b> to <b>{1}</b> of <b>{2}</b>", firstRow, lastRow, totalRows);
addResultsToPagerTable(tblPager, results);
//Need to store the information somewhere that is persisted via ViewState, and we don't have access to ViewState here
grid.Attributes.Add("results", results);
}
/// <summary>
/// Handles the Selected event of the source control. Gets the total rows, since it is not possible to access them from the GridView.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs"/> instance containing the event data.</param>
private void source_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.ReturnValue is DataView)
totalRows = ((DataView)e.ReturnValue).Count;
else if (e.ReturnValue is EntitySet)
totalRows = ((EntitySet)e.ReturnValue).Count;
}
#endregion
#region Private Methods
private static void addResultsToPagerTable(Table tblPager, string results)
{
//http://michaelmerrell.com/2010/01/dynamically-modifying-the-asp-net-gridview-paging-control/
//Get a handle to the original pager row
TableRow pagesTableRow = tblPager.Rows[0];
//Add enough cells to make the pager row bigger than the label we're adding
while (pagesTableRow.Cells.Count < 10)
pagesTableRow.Cells.Add(new TableCell { BorderStyle = BorderStyle.None });
//Add a new cell in a new row to the table
TableRow newTableRow = new TableRow();
newTableRow.Cells.AddAt(0, new TableCell
{
Text = results,
BorderStyle = BorderStyle.None,
ColumnSpan = pagesTableRow.Cells.Count
});
tblPager.Rows.AddAt(0, newTableRow);
}
#endregion
#region Public Methods
/// <summary>
/// Adds EventHandlers to the GridView to display results from the ObjectDataSource in the footer.
/// </summary>
/// <param name="grid">The GridView.</param>
/// <param name="source">The ObjectDataSource linked to the GridView.</param>
public static void AddResultsToFooter(GridView grid, ObjectDataSource source)
{
if (grid == null)
throw new ArgumentNullException("grid", "grid is null.");
if (source == null)
throw new ArgumentNullException("source", "source is null.");
new GridHelper(grid, source);
}
#endregion
View 1 Replies
Sep 2, 2010
I'm trying to retreive values entered by users in the textboxes in the footer of the gridview and insert these values into another sql table.My code is as follows :-
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName.Equals("addnew"))
{
TextBox t1 = (TextBox)GridView2.FooterRow.FindControl("tfrm");
string frm = t1.Text;
TextBox t2 = (TextBox)GridView2.FooterRow.FindControl("tsub");
string sub = t2.Text;
string cmd = "insert into suggestions values('" + frm + "','" + sub + "','c','c')";
con.Open();
SqlCommand com = new SqlCommand(cmd,con);
int a = com.ExecuteNonQuery();
GridView2.DataBind();
con.Close();
}
}
But the strings 'frm' and 'sub' returns null values.
View 8 Replies
Jun 18, 2010
I have a module that subscribes to PreRequestHandlerExecute event, which uses the Session object. When i set the webconfig compilationdebug flag to false, the Session object is null when making requests to the web service. It works fine for .aspx requests, but only have problems for .asmx. When i set the debug flag to true everything works fine. I need to set this flag to false for production, but can't seem to get it work.I'm using II7 and the integrated pipeline, so this event will fire for all requests.
View 1 Replies
Jun 14, 2010
I am trying to attach a server-side event to lookup the city/state for the user-entered zipcode in a field like the one below.
<asp:TextBox ID="TextZipcode" runat="server" CssClass="inputtext" Columns="10" MaxLength="10"></asp:TextBox>
Since there is no lost focus event to capture, has anyone had any luck getting this to work?
View 1 Replies
Apr 24, 2010
Using vb.net/asp.net 2005.
I have a page books.aspx that has a control named authors.ascx.
Inside the authors control there is a "select" button I want to add some kind of listener or event handler (not sure of the correct terminology) so on the parent page (books.aspx) I can respond to the "select" button being clicked.
I have to pass the authorID from the user control to the parent page.
In my authors.ascx control I just created this event:
[Code]....
Now I need to write the function for SelectAuthorBtnClick and I think add some kind of listener in the parent page to listen and handle the event.
View 7 Replies
Mar 1, 2011
I have a gridview called gvResults. In the gvResults_RowEditing event I add a row below the one selected. In that new row, which spans all columns, I insert a user-control. There are two buttons and some textboxes in the user control.
My problem is that when I click one of the user-control buttons it never gets to the button event handler, I think because the user control is not recreated on the page postback. How can I have the user-control events fire before the parent page events fire?
I tried using an update panel, but I still get the parent posting back before the user-control events.
View 3 Replies
May 8, 2010
I am facing one strange problem,I have a gridview in which the last two columns have checkboxes and on those checkboxes click event I am doing some database operations.I also have one checkbox that is outside the gridview which actually shows or hides some of the gidview columns.This was all working well but now I have shifted that grid to a user control because I have to use it in two pages.The problem now is,When the page first loads and I click the check box or any control in the page that is outside the grid then it works perfectly.But once I click any of the check box within grid view column then its behavior chages, now even if I click the checkbox that is outside the grid then also the checkbox_CheckedChanged event of the checkbox that is whithin gridview is fired.That checkbox event then behaves something like a page_load event that is called for every page load and for every event with in the page after it is called once.
View 3 Replies
Jun 15, 2010
I've created a databound gridview inside the gridview's RowDataBound I use the RowSpan property to merge cells. The grid ends up looking like this for example....
Data Data Data Button
Data Data Button
Data Data Data Button
Data Data Button
Data Data Data Button
The button is generated using a Template Field and is a standard ASP:Button. If I click a button in an unmerged row everything works as expected. If I click a button in a merged row...the sender object on the command comes back as null and no matter what I try I can't seem to fix it or get a reference to the button.
sender.CommandArgument
for example returns and empty string.
View 3 Replies
Jan 28, 2010
well i have already created the rows and cells dynamically using asp.net table control ...but how to add an onclick event on that ...so that i could retrieve the corresponding cell when a particular row is clicked ...if it was a html control ,i could have used javascript but in this particular case m unable to find any solution..
View 2 Replies
Nov 11, 2010
i have a calender control like this
<asp:Calendar ID="CldrDemo" runat="server" BackColor="#FFFFCC" BorderColor="#FFCC66"
OnSelectionChanged="CldrDemo_SelectionChanged" OnDayRender="CldrDemo_DayRender">
</asp:Calendar> [code].....
i want to call the event handler for the dropdownlist - selectedIndexchanged and i have added it also like this
protected void ddlBlist_SelectedIndexChanged(object sender, EventArgs e)
{
}
but this is not getting fire when i am changing the item of the dropdownlist.
View 3 Replies
Jun 4, 2010
I don't think I understand fully how ASP.NET does inheritance of controls.I have a user control, ucBase, which has an asp.net label in the ascx file. Code behind references the label and it works fine during run time if the control is not a parent for another user parent.
If I have another user control, ucChild, inheriting from ucBase, the label in ucBase's code is always null. ucChild has no controls in its ascx fileThe server controls (like the label) needs to be declared in the ascx file and not created programmatically.What needs to be done for ucBase to see its own controls when it's a parent user control?
View 1 Replies
Jan 8, 2011
In a nested GridView (GridView inside a template column of parent GridView). I am binding child GridView to a DataTable in parent GridView's RowDataBound event. this works as it should. But the problem i am facing is in Child GridView's RowDataBound Event, when i try to access e.Row.DataItem property it returns null. I am expecting it to return DataRowView Type. which i will then use to set values of TextBox's.
[code]....
View 1 Replies
Nov 6, 2010
I have my Access database bound to a Gridview and an able to Edit and Update the Grid as long as all columns are set to ReadOnly=False. If I make one or more columns ReadOnly=True I get the following error on updating: You tried to assign the Null value to a variable that is not a Variant data type How do I get past that problem?
View 3 Replies