Mossberg Postad 22 augusti, 2004 Share Postad 22 augusti, 2004 Det här ska vara en anpassad kontroll för ASP.NET-bruk, men jag kan inte kompilera den (e g skapa dll), vad är det för fel, det enda tips jag får är att semikolonet efter 'public event TextChanged' är felaktigt, men det måste vara något annat som spökar, någon som kan kolla igenom o finna felet? Vore evigt tacksam! using System; using System.Web; using System.Web.UI; using System.Collections.Specialized; namespace MyCustomControls { public class CustomControl : Control, IPostBackDataHandler { public event TextChanged; protected void OnTextChanged(EventArgs e) { if (TextChanged != null) { TextChanged(this, e); } } public bool LoadPostData(String PostDataKey, NameValueCollection Values) { string strOldValue = this.Message; string strNewValue = Values(postDataKey); if (!strOldValue == strNewValue) { this.Message = strNewValue; return true; } return false; } public void RaisePostDataChangedEvent() { OnTextChanged(EventArgs.Empty); } public string Message { get { Message = ViewState("Message").ToString; } set { ViewState("Message") = value; } } protected override void Render(HtmlTextWriter Output) { Output.Write("<input name=" + this.UniqueID + " type=text value="" + this.Message + "">"); } } } Länk till kommentar Dela på andra webbplatser More sharing options...
nop4e71 Postad 22 augusti, 2004 Share Postad 22 augusti, 2004 Borde det inte vara public event EventHandler TextChanged; Ett event måste ju ha en delegate som "typ". / Länk till kommentar Dela på andra webbplatser More sharing options...
Mossberg Postad 22 augusti, 2004 Trådskapare Share Postad 22 augusti, 2004 Precis, det där löste det problemet, sen visade det sig vara en del annat också vilket jag löste själv (hade rätt från början på dessa, det var EventHandler som fattades). Det som kvarstår nu är problem med if not-satsen: if (!strOldValue == strNewValue) { this.Message = strNewValue; return true; } Det returnerar felmed: Operator '!' cannot be applied to operand of type 'string' Om jag tar bort notationen så går filen igenom men då förlorar jag ju not-funktionen. Det står lite still just nu men borde jag inte kunna skriva 'strNewValue == strOldValue' för att få samma effekt? ...Eller måste jag casta om strängen? Hmmmm..? Länk till kommentar Dela på andra webbplatser More sharing options...
osiris Postad 23 augusti, 2004 Share Postad 23 augusti, 2004 if not skrivs i C# som != alltså if (strOldValue != strNewValue) { this.Message = strNewValue; return true; } Länk till kommentar Dela på andra webbplatser More sharing options...
PatrikA Postad 23 augusti, 2004 Share Postad 23 augusti, 2004 Men du kan nog skriva: if (!strOldValue.Equals(strNewValue)) { this.Message = strNewValue; return true; } Länk till kommentar Dela på andra webbplatser More sharing options...
sbd Postad 23 augusti, 2004 Share Postad 23 augusti, 2004 eller if (strOldValue.Equals(strNewValue) == false) { this.Message = strNewValue; return true; } Länk till kommentar Dela på andra webbplatser More sharing options...
Mossberg Postad 23 augusti, 2004 Trådskapare Share Postad 23 augusti, 2004 Fint med hjälp, har inte provat de två senare tipsen men jag antar att de funkar så ni får poäng (om inte annat så för svar, uppskattat!). /moss Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.