Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Книги по теме

Искать:
в:
Порядок:

Исходник

Автор:

SergS

 
Название:

NewLabel

Дата: 09 January 2007
Описание: Наследник Label у которого есть свойства CommandName,CommandArgument и события Click,Command. 
  Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения следующую строку: [CODEPOST ID=202]NewLabel[/CODEPOST]
Оценка: Проголосовало 2 посетителей, средняя оценка 3.00
Оценить:
  1 Build.bat
  2 
  3 set qq="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc"
  4 del bin\Label.dll
  5 del bin\WebForm1.aspx.dll
  6 cls
  7 %qq% /target:library  /out:bin\Label.dll Label.cs /r:System.Web.dll
  8 %qq% /target:library  /out:bin\WebForm1.aspx.dll WebForm1.aspx.cs /r:System.Web.dll /r:bin\Label.dll
  9 
 10 //----------
 11 Label.cs 
 12 
 13 using System;
 14 using System.Web.UI;
 15 using System.Web.UI.WebControls;
 16 
 17 namespace NS
 18 {
 19 
 20   public class LabelNew : System.Web.UI.WebControls.Label, IPostBackEventHandler   
 21   {   
 22     private static object EventCommand = new object();   
 23     public static readonly object EventClick=new object();
 24     public event EventHandler onclick;
 25 
 26     public void RaisePostBackEvent(string eventArgument)   
 27     {   
 28       OnCommand(new CommandEventArgs(CommandName, CommandArgument));   
 29 
 30       if (onclick != null) onclick (this, new EventArgs ());      
 31       OnClick(EventArgs.Empty);
 32 
 33     }   
 34    
 35     public virtual string txt 
 36     {
 37       get
 38       {
 39         object obj = ViewState["txt"];
 40         return (obj == null) ? String.Empty : (string)obj;
 41       }
 42       set{ViewState["txt"] = value;}
 43     }
 44 
 45     public string CommandName   
 46     {   
 47       get  
 48       {   
 49         string value = ViewState["CommandName"] as string;   
 50         return value == null ? "" : value;    
 51       }   
 52       set { ViewState["CommandName"] = value; }   
 53     }   
 54    
 55     public string CommandArgument   
 56     {   
 57       get  
 58       {   
 59         string value = ViewState["CommandArgument"] as string;   
 60         return value == null ? "" : value;   
 61       }   
 62       set { ViewState["CommandArgument"] = value; }   
 63     }   
 64 
 65     protected override void AddAttributesToRender(HtmlTextWriter writer)
 66     {
 67       base.AddAttributesToRender (writer);
 68       writer.AddAttribute(HtmlTextWriterAttribute.Onclick,Page.GetPostBackEventReference(this,String.Empty)); 
 69     }
 70  
 71     protected virtual void OnCommand(CommandEventArgs e)   
 72     {   
 73       CommandEventHandler handler = Events[LabelNew.EventCommand] as CommandEventHandler;   
 74    
 75       if (handler != null) handler(this, e);   
 76    
 77       RaiseBubbleEvent(this, e);   
 78     }   
 79 
 80     protected virtual void OnClick(EventArgs e)
 81     {
 82       EventHandler handler=(EventHandler)Events[EventClick];
 83       if(handler!= null) {handler(this,e); }
 84     }
 85    
 86     public event EventHandler Click
 87     {
 88       add{Events.AddHandler(EventClick,value); }
 89       remove{Events.RemoveHandler(EventClick,value); }
 90     }
 91 
 92     public event CommandEventHandler Command   
 93     {   
 94       add { Events.AddHandler(LabelNew.EventCommand, value); }   
 95       remove { Events.RemoveHandler(LabelNew.EventCommand, value); }   
 96     }   
 97   }   
 98 }
 99 //--------------
100 WebForm1.aspx
101 
102 <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="NS.WebForm1" %>
103 <%@ Register TagPrefix="cc2" Namespace="NS" Assembly="Label" %>
104 <HTML>
105   <body>
106     <form id="Form1" method="post" runat="server">
107       <cc2:LabelNew id="LabelNew1" runat="server" CommandName="NameLabelNew1" 
108        CommandArgument="ArgumentLabelNew1" Text="LabelNew1"  txt="ttt" />
109       <br/>
110       <asp:Label id="Label1" Text="Label1" runat="server" />
111       <br/>
112       <asp:Label id="Label2" Text="Label2" runat="server" />
113       <br/>
114       <asp:Label id="Label3" Text="Label3" runat="server" />
115        <br/>
116       <asp:Label id="Label4" Text="Label4" runat="server" />
117     </form>
118   </body>
119 </HTML>
120 
121 //----------
122 WebForm1.aspx.cs
123 
124 using System;
125 using System.Collections;
126 using System.ComponentModel;
127 using System.Data;
128 using System.Drawing;
129 using System.Web;
130 using System.Web.SessionState;
131 using System.Web.UI;
132 using System.Web.UI.WebControls;
133 using System.Web.UI.HtmlControls;
134 
135 namespace NS
136 {
137   public class WebForm1 : System.Web.UI.Page
138   {
139     protected System.Web.UI.WebControls.Label Label1;
140     protected System.Web.UI.WebControls.Label Label2;
141     protected System.Web.UI.WebControls.Label Label3;
142     protected System.Web.UI.WebControls.Label Label4;
143     protected NS.LabelNew LabelNew1;
144 	
145     private void Page_Load(object sender, System.EventArgs e)
146     {
147       // Put user code to initialize the page here
148     }
149 
150     override protected void OnInit(EventArgs e)
151     {
152       InitializeComponent();
153       base.OnInit(e);
154     }
155 		
156     private void InitializeComponent()
157     {    
158       this.LabelNew1.Command += new System.Web.UI.WebControls.CommandEventHandler(this.LabelNew1_Command);
159       this.LabelNew1.Click += new System.EventHandler(this.LabelNew1_Click);
160       this.Load += new System.EventHandler(this.Page_Load);
161     }
162 
163     private void LabelNew1_Click(object sender, System.EventArgs e)
164     {
165 //       Label1.Text=((LabelNew)sender).CommandArgument;
166 //       Label1.Text=((LabelNew)sender).txt;
167     }
168 
169     private void LabelNew1_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
170     {
171      
172       Label1.Text="LabelNew1_Command";
173       Label2.Text=e.CommandArgument.ToString();
174       Label3.Text=e.CommandName.ToString();
175       Label4.Text=((LabelNew)sender).CommandArgument;
176      
177     }
178   }
179 }
180 
Вернуться к списку исходников в категории Создание элементов управления
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта