Mega Code Archive

 
Categories / ASP.Net Tutorial / Custom Controls
 

Pass parameter from user-defined controls to host page

File: Control.ascx <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Control.ascx.cs" Inherits="Control" %> <div>     Products:     <asp:LinkButton ID="lnkBooks" runat="server" CommandArgument="MenuHost.aspx?product=Books" OnCommand="lnk_Command" >Books   </asp:LinkButton><br />     <asp:LinkButton ID="lnkToys" runat="server" CommandArgument="MenuHost.aspx?product=Toys" OnCommand="lnk_Command">Toys   </asp:LinkButton><br />     <asp:LinkButton ID="lnkSports" runat="server" CommandArgument="MenuHost.aspx?product=Sports" OnCommand="lnk_Command">Sports   </asp:LinkButton><br />     <asp:LinkButton ID="lnkFurniture" runat="server" CommandArgument="MenuHost.aspx?product=Furniture" OnCommand="lnk_Command">Furniture   </asp:LinkButton> </div> File: Control.ascx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class LinkMenu : System.Web.UI.UserControl {     public event LinkClickedEventHandler LinkClicked;     protected void lnk_Command(object sender, CommandEventArgs e)     {         if (LinkClicked != null)         {             LinkClickedEventArgs args = new LinkClickedEventArgs((string)e.CommandArgument);             LinkClicked(this, args);             if (!args.Cancel)             {                 Response.Redirect(args.Url);             }         }     } } File: MenuHost.aspx <%@ Page Language="C#" AutoEventWireup="true"     CodeFile="MenuHost.aspx.cs" Inherits="MenuHost"%> <%@ Register TagPrefix="rntsoft" TagName="LinkMenu" Src="Control.ascx" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">     <title>Menu Host</title> </head> <body>     <form id="form1" runat="server">     <div>         <table>             <tr>                 <td style="width: 100px">                     <rntsoft:LinkMenu id="Menu1" runat="server" OnLinkClicked="LinkClicked" />                 </td>                 <td>                     &nbsp;&nbsp;<asp:Label id="lblSelection" runat="server" EnableViewState="false"/><br />                     &nbsp;&nbsp;<asp:Label id="lblClick" runat="server" EnableViewState="false"/>                 </td>             </tr>         </table>         <br />         &nbsp;     </div>     </form> </body> </html> File: MenuHost.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public class LinkClickedEventArgs : EventArgs {     private string url;     public string Url     {         get { return url; }         set { url = value; }     }     private bool cancel = false;     public bool Cancel     {         get { return cancel; }         set { cancel = value; }     }     public LinkClickedEventArgs(string url)     {         Url = url;     } } public delegate void LinkClickedEventHandler(object sender,  LinkClickedEventArgs e); public partial class MenuHost : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {         if (!Page.IsPostBack)         {             if (Request.Params["product"] != null)             {                 lblSelection.Text = "You chose: ";                 lblSelection.Text += Request.Params["product"];             }         }     }     protected void LinkClicked(object sender, LinkClickedEventArgs e)     {         if (e.Url == "MenuHost.aspx?product=Furniture")         {             lblClick.Text = "This link is not allowed.";             e.Cancel = true;         }     } }