Also gut... Ich poste den ganzen Code: Er ist in einer Assembly
Der Button
public class iPicButton : WebControl, IPostBackEventHandler {
private string path = "";
protected override void CreateChildControls() {
HtmlButton myButton = new HtmlButton();
myButton.Attributes["onclick"] =
Page.GetPostBackEventReference(this);
myButton.InnerHtml = "<img border='0' src='" +
path + "save.gif" + "' alt='Speichern'>";
Controls.Add(myButton);
}
// Defines the Click event.
//
public event EventHandler Click;
// Invokes delegates registered with the Click event.
//
protected virtual void OnClick(EventArgs e) {
if (Click != null) {
Click(this, e);
}
}
// Method of IPostBackEventHandler that raises change events.
//
public void RaisePostBackEvent(string eventArgument){
OnClick(new EventArgs());
}
}
Das Label
public class iLabel : Label, IPostBackDataHandler {
/* public override String Text {
get {
return (String) ViewState["Text"];
}
set {
ViewState["Text"] = value;
}
}
*/
//private string text = "";
private bool editmode = false;
///<summary>Die EditMode Eigenschaft</summary>
public virtual bool EditMode{
get { return editmode; }
set { editmode = value; }
}
///<summary>Die Render Methode dient zum darstellen des
Steuerelements</summary>
protected override void Render( HtmlTextWriter writer) {
// DIV Tag beginnen
writer.Write("<div id='" + this.ClientID + "_div' class='"+
CssClass + "'");
if (editmode) writer.Write(" contenteditable");
writer.Write(">");
// Der Text ausgeben
writer.Write(ViewState["Text");
// DIV Tag abschlie�en
writer.Write("</div>");
// PostBack anh�nfen
if (editmode) writer.Write("<input
causesvalidaton='false' type='hidden' name='" + this.UniqueID + "' id='"
+ this.ClientID +"'>");
}
protected override void OnLoad (EventArgs e) {
if (editmode)
Page.RegisterOnSubmitStatement("submit" + this.ClientID, this.ClientID +
".innerText = " + this.ClientID + "_div.innerHTML;");
}
public virtual void RaisePostDataChangedEvent() {
// OnTextChanged(EventArgs.Empty);
}
public virtual bool LoadPostData(string postDataKey,
NameValueCollection postCollection) {
string presentValue = Text;
string postedValue = postCollection[postDataKey];
//System.Web.HttpContext.Current.Response.Write("POSTED:" +
postDataKey);
if (!presentValue.Equals(postedValue)){
Text = postedValue;
return true;
}
return false;
}
}
-----Urspr�ngliche Nachricht-----
Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] Im Auftrag von
Sebastian Krampe
Gesendet: Dienstag, 10. September 2002 09:29
An: aspDEdotnet
Betreff: [aspdedotnet] AW: UserControls...
Worin stecken denn Deine Buttons und Textboxen jeweils? In der ASPX oder
in UserControls? Was sollen sie machen? Wie werden die Ereignisse
behandelt? Im Page_Load (z.B als Page.IfIsPostBack) oder als
OnClick-Event?
Paste doch mal Code. Mit Deinem Localhost kann ich hier leider wenig
anfangen ;)
By the way: "iteam"? Apples' iteam?
Gru�
Sebastian
-----Urspr�ngliche Nachricht-----
Von: Andreas Rudischhauser (N) [mailto:[EMAIL PROTECTED]]
Gesendet: Dienstag, 10. September 2002 07:30
An: aspDEdotnet
Betreff: [aspdedotnet] UserControls...
Ich bin immmer noch an meinen 2 Usercontrols Label und Button....
Kann jemand aus folgendem Szenario schlau werden:
Auf der Seite sind
1 Button
1 TextBox
1 AndiTextBox abgeleitet von TextBox
1 AndiButton abgeleitet von Button
Klicke ich auf den normalen Button bleibt der Inhalt der TextBox und der
AndiTextbox erhalten. Klicke ich auf den AndiButton bleibt der Inhalt
der TextBox erhalten nicht aber der AndiTextBox.
Ich dreh durch. Testen unter
http://localhost/iteam_neu/webdesign/NETControls.aspx
| [aspdedotnet] als [EMAIL PROTECTED] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv Sie
| k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp
| [aspdedotnet] als [EMAIL PROTECTED] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv Sie
| k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp
| [aspdedotnet] als [email protected] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp