C# - ASP Event Delegation Between User Controls

Mar 31, 2010

Give the following control hierarchy on a ASP.NET page:

Page
HeaderControl (User Control)
TitleControl (Server Control)
TabsControl (User Control)
other controls

I'm trying to raise an event (or some notification) in the TitleControl that bubbles to the Page level. Then, I'd like to (optionally) register an event handler at the Page codebehind that will take the EventArgs and modify the TabsControl in the example above. The important thing to note is that this design will allow me to drop these controls into any Page and make the entire system work seamlessly if the event handler is wired up. The solution should not involve a call to FindControl() since that becomes a strong association. If no handler is defined in the containing Page, the event is still raised by TitleControl but is not handled.

My basic goal is to use event-based programming so that I can decouple the user controls from each other. The event from TitleControl is only raised in some instances, and this seemed to be (in my head) the preferred approach. However, I can't seem to find a way to cleanly achieve this. Here are my (poor) attempts:

Using HttpContext.Current.Items

Add the EventArgs to the Items collection on TitleControl and pick it up on the TabsControl. This works but it's fundamentally hard to decipher since the connection between the two controls is not obvious.

Using Reflection

Instead of passing events, look for a function on the container Page directly within TitleControl as in: Page.GetType().GetMethod("TabControlHandler").Invoke(Page, EventArgs);

This will work, but the method name will have to be a constant that all Page instances will have to defined verbatim. I'm sure that I'm over-thinking this and there must be a prettier solution using delegation, but I can't seem to think of it.

View 4 Replies


Similar Messages:

Enable Double - Hop Delegation In IIS7 Windows 2008

Dec 2, 2010

my ASP.NET web application uses windows authentication on our intranet. I want it to be able to make a server-side http request to another server on the same domain that also requires windows authentication. I've followed the instructions on temporarily impersonating the authenticated user when making the additional request here: [URL] Using code like this:

using System.Security.Principal;
// Obtain the authenticated user's Identity
WindowsIdentity winId = (WindowsIdentity)HttpContext.Current.User.Identity;
WindowsImpersonationContext ctx = null;
try
{
// Start impersonating
ctx = winId.Impersonate();
// Now impersonating
// Access resources using the identity of the authenticated user
var request = WebRequest.Create("http://intranet/secureapp");
request.Credentials = CredentialCache.DefaultCredentials;
var response = request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
Response.Write(streamReader.ReadToEnd());
}
}
// Prevent exceptions from propagating
catch
{
}
finally
{
// Revert impersonation
if (ctx != null)
ctx.Undo();
}
// Back to running under the default ASP.NET process identity

But, unfortunately, I always get a 401 unauthorized error. Do I need to configure our webserver with active directory to allow it to delegate the autenticated user (could be any one of about 200 users, so don't want to have to do anything 200 times :))? If so, can anyone tell me how to do this?

View 1 Replies

Security :: Double Hop Delegation - Can't Get The Web Service To Run Under The Callers Context

Sep 3, 2010

I have an ASP.NET 2.0 web app which calls a one way web method on a web service. This web method contacts remote servers and pulls back config information to confirm the state of new server builds (settings etc) and inserts the collected data into a SQL database. The web app is supposed to pass through the callers kerberos ticket to the web service and then again to the newly built server which is being checked, all via impersonation and delegation using the calling users administrator privileges.

The trouble is, I just can't get the web service to run under the callers context. I have the SPN's set up, delegation turned on in the active directory objects for the computer running the web app and service and the worker process domain user service account. I have windows authentication on and impersonation set to true in both the web app and service's web.config, integrated authentication in IIS, and IE settings are all ok. All has been checked out and passes the tests in DelegConfig, but it still won't work.

It appears that any data that's is written to the database is written under the context of the web pool service account, and not the calling users, plus along with the fact that I get access denied messages when trying to collect data from the server says impersonation isn't working. Also, is it possible to run the checks under the calling users context, but write to the database with the web pool identity service account without specifying the user details in the web config?? I am working in a secure environment and we must user windows based accounts only, no SQL accounts.

View 1 Replies

Security :: Double Hop Impersonation - Protocol Transitioning And Constrained Delegation In 4

Nov 10, 2010

I want to use IIS impersonation to connecto to a SQL server database as the user who is currently accessing a website. This is for auditing and security reasons. I've done some reading and discovered that because the SQL Server is on a sepearate physical server I need to enable Protocol Transitioning and Constrained delegation for the server that's running IIS. This is the article that I found. [URL] I didn't realise at the time I first read it but this article has the following header. Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. What I want to know is, does the information in the article still apply, if I want to impersonate the user all the way to the SQL Server, do i still need Constrained Delegation or has this been implemented in some other way for ASP.NET 4?

View 1 Replies

User Controls :: Trigger One UserControl Event From Another UserControl Event

Feb 14, 2013

I have page having two user controls. Now I have a requirement for which i have to trigger one user control event from another user control.

View 1 Replies

Web Forms :: Add Event Handler To User Control And Capture Event On Parent Page?

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

Web Forms :: Firing Click Event On A User-control That Is Created From Another Event?

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

Web Forms :: Adding OnClick Event To User Controls?

Jan 19, 2010

I've just slapped together a new user control and I need to add a OnClick event to it so I can handle it via page code behind.

I've never had to do it before so if someone would be kind enough to shead some light that'd be fantastic.

View 3 Replies

Forms Data Controls :: Log Exactly What User Has Changed In Gridview Event?

Oct 13, 2010

I have Gridview which allows user to edit record.I already build the event to save the new record, time and user machine information to a log database.However, this means a whole record is saved to the log... if the user just change one or two column/field out of say 20 fields, then there is a lot of waste. Also the change is not obvious.How can I log exactly which field(s) was changed in the record ?

View 1 Replies

Web Forms :: Event Handling Of User Controls Inside Master Page

Mar 4, 2010

I am trying to catch an event that is in a user control inside a master page contentholder and refresh the content page. I am having a hard time finding a good example. Even on this site I am timing out on search.

View 3 Replies

Web Forms :: When To Wire Up Event Handlers For Dynamically Loaded User Controls

Jul 15, 2010

I have a situation where I dynamically load one of twenty user controls at a time in an ASP.net web page. Based on much reading I've done, I understand that I am to reload the user control upon postback via the Page_Init event handler. This I've done and it seems to work fine.

But now I would like to wire up assorted controls in the user controls such that when the value of each is changed, an event is fired and the web page is notified. Here's an example of how I'm doing that:

userControl.NewData_Handler += new EventHandler(UserControl_NewData_Handler);

There's a problem though. Because the user control is being done in Page_Init (ie. before Page_Load) I don't believe that a line of code such as the one above can function yet.

So I'm wondering what the best practice to do this is. It occurred to me that perhaps I could execute the line in the Page_Load event handler but I'm not sure if that's correct or not.

View 2 Replies

Forms Data Controls :: Reload User Control When Event Occurs On Web

Feb 1, 2010

I have a user control with a datalist loaded on my web page and also a web form to add another entry to the datalist when the button to submit the new entry I need to reload the user contol to show the new entry

<h1>Admin</h1>
<h2>News</h2>
<asp:label ID="lblSearch" Text="Select News: " runat="server" />
<asp:DropDownList ID="NewsList" runat="server" CssClass="DropDownMenu" />
<asp:Button ID="btnSearch" Text="Search" runat="server" OnClick="btnSearch_Click" />
<br />
<br />
<asp:Label ID="dbErrorMessage" ForeColor="Red" runat="server" />
<asp:Label ID="Successfulmessage" runat="server" />
<br />
<asp:Label ID="lblTitle" runat="server" Text="Title" CssClass="TextBoxLabel" />
<br />
<asp:TextBox ID="txtTitle" runat="server" CssClass="TextBox" />
<br />
<br />
<asp:Label ID="lblNews" runat="server" Text="News" CssClass="TextBoxLabel" />
<br />
<asp:TextBox ID="txtNews" runat="server" TextMode="MultiLine" Width="500px" Rows="10" CssClass="TextBox" />
<br />
<asp:Button ID="btnSubmit" Text="Submit" runat="server" Onclick="btnSubmit_Click" />
<asp:Button ID="btnUpdate" Text="Update" runat="server" OnClick="btnUpdate_Click" />
<asp:Button ID="btnDelete" Text="Delete" runat="server" OnClick="btnDelete_Click" />
<br />
<br />
<uc1:NewsList ID="NewsList1" runat="server" />
<br />
protected void btnSubmit_Click(object sender, EventArgs e)
{
// Define data objects
SqlConnection conn;
SqlCommand comm;
// Read the connection string from Web.Config
string connectionString = ConfigurationManager.ConnectionStrings["platiummindproductions"].ConnectionString;
// Initialise connection
conn = new SqlConnection(connectionString);
// Create Command
comm = new SqlCommand("INSERT INTO News (Title, Date, News) VALUES (@Title, @Date, @News)", conn);
// Add command parameters
comm.Parameters.Add("@Title", System.Data.SqlDbType.NVarChar, 50);
comm.Parameters["@Title"].Value = txtTitle.Text;
comm.Parameters.Add("@Date", System.Data.SqlDbType.DateTime);
comm.Parameters["@Date"].Value = DateTime.Now;
comm.Parameters.Add("@News", System.Data.SqlDbType.NVarChar, 4000);
comm.Parameters["@News"].Value = txtNews.Text;
// Enclose database in try-catch-finally
try
{
// Clear message labels
Successfulmessage.Text = "";
dbErrorMessage.Text = "";
// Open the connection
conn.Open();
// Execute the command
comm.ExecuteNonQuery();
DataBind();
// Display sussessful message
Successfulmessage.Text = "News Updated successfully!";
}
catch
{
// Display error message
dbErrorMessage.Text = "Error updating the News details! Please try again later!";
}
finally
{
// Close the connection
conn.Close();
}
}

View 1 Replies

User Controls :: JavaScript Event Getting Lost And Not Working After PostBack In UserControl

Dec 4, 2012

I have created a user control.  Usercontrol contain a image.  Attached a click event on image jusing javascript function.

image.onclick = function (e) { //some code };

Now this user control is added on aspx page. Thsi is working file first time. however when the page is getting postback this event is not working.UserControl EnableViewstate is true.What should be done?

View 1 Replies

Forms Data Controls :: User Control Event Doesn't Fire Within Datalist?

Dec 23, 2010

I have a datalist that loops thru cart items. Within the datalist template I call a user control that has a small form that gets repeated for each item. When this control is called outside of the datalist, the form submits fine, but when called within the datalist the button has no event action. I've tried adding an event handler to ItemDataBound of the datalist, but still no event action. How can I get my form to submit?

View 8 Replies

User Controls :: How To Call Event Of Button Inside UserControl In Master Page From Content Page

Apr 25, 2014

I have a ShoppingCart UserControl on MasterPage. I have a following functionality: User adds item to the cart. after clicking the button "Complete Sale" in UserControl the page is redirected to "CustomerInfo.aspx" and after filling the Customer information and clicking on submit which is on CustomerInfo.aspx page i want to call the "Complete Sale" click event of UserControl from "Customerinfo.aspx" page.

Customerinfo.aspx.cs
protectedvoid btnSubmit_Click(object sender, EventArgs e)
{
try
{
bool val = false; int retVal = 0;
CustomerBiz objCust = newCustomerBiz();
objCust.FirstName = txtFirstName.Text.Trim();

[code].....

Here the Button text changes in UserControl. But i am not able to call the Click event of this button from CustomerInfo.aspx (ContentPage)?

View 1 Replies

User Control To Raise An Event That Is Handled By Another User Control?

Jan 19, 2011

Is there any way for one user control to raise an event that is handled by another user control without going through the page? I am using Umbraco and do not have access to the page object.

--Edit--

Umbraco has the idea of Macro's (user controls) that it loads into pages. I can't access the page directly as this is part of the framework.

There is a publish subscribe (pubsub) pattern that I know would fit my needs well (2 user controls that need to talk to each other) but am unsure how to hook it up in ASP.Net without the page object.

View 1 Replies

User Control Event Handling

Jun 5, 2010

i have some problem with my userControl. Pls look below for better understanding. Pic1. The default page. When i click on the links on the left, userControl will load into the placeHolder as in pic2. But when i click on the Clear button that is inside the userControl, instead of clearing the text in the textbox, it load back to the default page show in pic1. Can anyone pls advise me what went wrong?

View 9 Replies

Web Forms :: Add Event To User Control?

Jul 7, 2010

I have a user control that's in it a text boxI want add the even TextChanged to that text box too reach from pagesin my user control I have 1 text box and I want reach the its "TextChanged"event to write some cod ein it in my aspx pagelike a normal textox.

View 3 Replies

C# - Button Event In Web User Control?

Oct 21, 2010

I have a problem with button event in web user control

First i have an aspx like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AddTest.aspx.cs" Inherits="AddTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div id="divContent" runat="server">
</div>
</form>
</body>
</html>

As you see i have a ScriptManager to do with ASP.NET AJAX, a div with ID divContent to load controls, then in code behind:

protected void Page_Load(object sender, EventArgs e)
{
divContent.Controls.Add(LoadControl("~/thitai/addtest.ascx"));
}

I add addtest.ascx to divContent as you see, and this is the code of addtest.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="addtest.ascx.cs" Inherits="thitai.addtest" %>
<asp:UpdatePanel ID="updatePanel" runat="server" ClientIDMode="Static">
<ContentTemplate>
<input type="button" value="Load text" onclick="updPanel('text');return false;" />
<input type="button" value="Load image" onclick="updPanel('image');return false;" />
<asp:HiddenField ID="hftype" runat="server" ClientIDMode="Static" />
<div>
<asp:PlaceHolder ID="plhControl" runat="server"></asp:PlaceHolder>
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<script type="text/javascript">
function updPanel(type) {
$("#hftype").val(type);
__doPostBack("updatePanel", "");
}
</script>

Each time i click on Load text button, i change the value of hfType (hidden field) then do postback to server using UpdatePanel, then this is code behind

protected override void OnPreRender(EventArgs e)
{
string type = hftype.Value;
switch (type)
{
case "text":
plhControl.Controls.Add(LoadControl("~/thitai/test/text.ascx"));
break;
case "image":
plhControl.Controls.Add(LoadControl("~/thitai/test/image.ascx"));
break;
default:
plhControl.Controls.Add(LoadControl("~/thitai/test/text.ascx"));
break;
}
base.OnPreRender(e);
}

This is the code of text.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="text.ascx.cs" Inherits="thitai.test.text" %>
<%@ Register Assembly="Support" Namespace="Support.CustomEditor" TagPrefix="Editor" %>
<Editor:CustomEditor ID="edNoidung" runat="server" NoScript="True" Content=""
Height="500" ActiveMode="Design" NoUnicode="True" InitialCleanUp="False" />
<div>
<asp:Button ID="Button1" runat="server" Text="Show HTML"
onclick="Button1_Click" />
</div>
<div id="showHtml" runat="server"></div>

And code behind of text.ascx

protected void Button1_Click(object sender, EventArgs e)
{
showHtml.InnerHtml = edNoidung.Content;
}

The problem is: when i click to button1, the page do a postback using AJAX but event Button1_Click DOES NOT FIRE!

View 1 Replies

Aspx Event For User Control?

May 18, 2010

In aspx page, I am using a user control which contains a button. I need to hide the button(which is in user control) when a checkbox(in aspx) is clikced. I have a postback for checkbox. I want to hide the button when the checkbox is checked. In which event I should do the hiding and unhiding?I cannot add extra property in user control. Is it possible to access the button using FindControl and disable it? Which event can be used for it?

View 3 Replies

Forms Data Controls :: Gridview RowDataBound Event Fires On Every Command Event?

Jul 19, 2010

why the gridview RowDataBound event fires during a select command. I only expect it to run when the gridview is being populated with data. Is there some way to stop it from running when the select command is triggered?

View 3 Replies

Forms Data Controls :: DataGrid Button And Event In Footer, Event Not Getting Fire

Sep 3, 2010

I have one Datagrid with Footer. Footer Row Contains Input fields with one Button to add New Values. I have button click event but not getting fires. my code follows:

[code]....

View 2 Replies

Forms Data Controls :: How To Call A Button Click Event On From An Event Handler

Sep 29, 2010

I got an event handler like this, in this event, i wanted to call another button click event. How can I do that?

[Code]....

if (ds.Tables[0].Rows.Count == 0)

View 3 Replies

Forms Data Controls :: CheckBox Checked Changed Event Is Firing For Every Control Event?

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

Data Controls :: Handle ItemCommand Event When Loading Event From Repeater From Client Side?

Jan 24, 2016

[URL] how to handle item command event in above  example?

View 1 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved