Wrox Programmer Forums
|
ASP.NET 1.0 and 1.1 Basics ASP.NET discussion for users new to coding in ASP.NET 1.0 or 1.1. NOT for the older "classic" ASP 3 or the newer ASP.NET 2.0.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the ASP.NET 1.0 and 1.1 Basics section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old December 12th, 2003, 05:11 AM
Friend of Wrox
 
Join Date: Oct 2003
Posts: 336
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to alyeng2000
Default return value from user control

all i have done is i made a user control (have some buttons) and i passed it in page_load some parameters then when i press any of the the control buttons i need to display some kind of result in my aspx page label ...(i know that i could do that by inserting this label in the user control but i need to display to web page control)
1- could i return result from the user control?
2- is there an event happen after loading all controls to the page???

Ahmed Ali
Software Developer
__________________
Ahmed Ali
Senior Software Developer
 
Old December 12th, 2003, 11:54 AM
planoie's Avatar
Friend of Wrox
 
Join Date: Aug 2003
Posts: 5,407
Thanks: 0
Thanked 16 Times in 16 Posts
Default

You need to create your own event in the user control. Then you need to raise that event when the button control inside the user control is clicked. Here is the code for the user control class codebehind:

Public Event MyButtonClicked(ByVal sender As Object, ByVal e As System.EventArgs)

Sub MyButton_OnClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyButton.Clicked
    RaiseEvent MyButtonClicked(Me, New System.EventArgs)
End Sub


Then the ASPX page class has to have a handler for that event. It also needs to have the user control declared as a class field such that it can handle the events and be visible throughout the class. Here is the code for the ASPX page class code behind:

Protected ucMyUserControl As MyUserControl

Sub Page_Load(...)
    ucMyUserControl = CType(LoadControl("MyUserControl.ascx"), MyUserControl)
    'Add the control where you need to here with ...Controls.Add(ucMyUserControl)
End Sub

Sub MyUserControlButton_OnClick(...) Handles ucMyUserControl.MyButtonClicked
    'Handle the button click here
End Sub


Here's the sequence of events:

1. Page loads
    1a. Page loads the user control
2. Events in the page and controls happen
    2a. Button control "Click" event handler catches button click. It Raises the user control's MyButtonClicked event.
    2b. Back in the ASPX, the user control's "MyButtonClick" event is handled by the MyUserControlButton_OnClick sub.

If you need to access items within the user control, you'll need to provide public access to them. A more elegant way of dealing with this need, however, is to utilize the event args argument of the event. If you would like more information about that, please post again. That subject is really another topic for discussion.

Peter
------------------------------------------------------
Work smarter, not harder.
 
Old December 12th, 2003, 09:10 PM
Friend of Wrox
 
Join Date: Oct 2003
Posts: 336
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to alyeng2000
Default

as i could call event...
so could i call a sub routine in my page from a user control

Ahmed Ali
Software Developer
 
Old December 13th, 2003, 09:33 AM
planoie's Avatar
Friend of Wrox
 
Join Date: Aug 2003
Posts: 5,407
Thanks: 0
Thanked 16 Times in 16 Posts
Default

Is that a question or a statement?

You don't "call" and event, you raise one.

.net programming is an event driven programming paradigm. You should raise an event. User controls are designed to be controls that you could use in many places. By tying a control to calling a specific sub/function you are defeating the model of their design. By raising an event you provide the functionality without the prerequisite of having that sub/function exist. The consumer of the control (the page) will be responsible for handling the event. It's really not that difficult to do, and a more correct implementation of the .net model.

Peter
------------------------------------------------------
Work smarter, not harder.





Similar Threads
Thread Thread Starter Forum Replies Last Post
Web Service, Custom Control, Custom Return Type robzyc ASP.NET 2.0 Basics 6 June 10th, 2008 08:03 AM
login script: user can't hit "return" for login dmerrill Java Basics 13 July 14th, 2006 07:25 PM
Add Windows User control in Web User Control agarwalvidhu C# 0 March 30th, 2006 01:17 AM
Help! Custom Server Control using User Control diehard ASP.NET 1.0 and 1.1 Professional 2 January 4th, 2006 12:33 PM
Help with control initialization in user control mike_remember ASP.NET 1.0 and 1.1 Professional 7 December 19th, 2005 11:08 AM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.