|
code
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
custom web controls and conversion to inline codeobvious reasons, we developed the ASP.NET 1.1 app using codebehind. We have an issue now when trying to convert the codebehind code to an inline format. The control fires a custom event (to pass detailed error info up the containing page, should they choose to implement a listener for the event). Using C# the custom control is doing something like this: ============== public delegate void UserControlEventHandler(object sender, ThinData.Common.UserControlEventArgs e); public event UserControlEventHandler UserControlError; ============== the parent page consuming the control was doing this: ============== PersInfo1.UserControlError += new ClientName.RegistrationUserControls.PersonalInformationForm.UserControlEventHandler(Generic_UserControlError); ============== The above works fine using codebehind. My problem is that within the containing page, when it is converted to inline script, the namespace and name: ClientName.RegistrationUserControls.PersonalInformationForm... cannot be resolved properly. The error is "missing assembly reference?" How should I be doing this so I can wire up the event in the parent page properly? Thanks. Add a Reference directive to your page:
<%@ Reference Control="Foo.ascx" %> -Brock DevelopMentor http://staff.develop.com/ballen Show quoteHide quote > Our client wanted delivery of the code using inline scripting, but for > obvious reasons, we developed the ASP.NET 1.1 app using codebehind. > We have an issue now when trying to convert the codebehind code to an > inline format. > > The control fires a custom event (to pass detailed error info up the > containing page, should they choose to implement a listener for the > event). Using C# the custom control is doing something like this: > > ============== > public delegate void UserControlEventHandler(object sender, > ThinData.Common.UserControlEventArgs e); > public event UserControlEventHandler UserControlError; ============== > > the parent page consuming the control was doing this: > > ============== > > PersInfo1.UserControlError += new > > ClientName.RegistrationUserControls.PersonalInformationForm.UserContro > lEventHandler(Generic_UserControlError); > > ============== > > The above works fine using codebehind. > > My problem is that within the containing page, when it is converted to > inline script, the namespace and name: > ClientName.RegistrationUserControls.PersonalInformationForm... > > cannot be resolved properly. The error is "missing assembly > reference?" > > How should I be doing this so I can wire up the event in the parent > page properly? > > Thanks. > thanks for the reply.
I tried your suggestion earlier to no avail. I have since found out that when converting codebehind pages to inline (the namespace and the class definition are removed when moving the code to a script block within the aspx page) and that is why I could not use the namespace naming convention. I learned that if I used the default namespace notation provided by ASP.NET for inline pages: ASP.ControlName_ascx.EventHandler That the code would then work as intended. I don't much like having to change this code however, in order to convert the pages to inline script. Is there a way to retain the use of namespaces when code is converted to inline from codebehind? Show quoteHide quote "Brock Allen" wrote: > Add a Reference directive to your page: > > <%@ Reference Control="Foo.ascx" %> > > -Brock > DevelopMentor > http://staff.develop.com/ballen > > > > > Our client wanted delivery of the code using inline scripting, but for > > obvious reasons, we developed the ASP.NET 1.1 app using codebehind. > > We have an issue now when trying to convert the codebehind code to an > > inline format. > > > > The control fires a custom event (to pass detailed error info up the > > containing page, should they choose to implement a listener for the > > event). Using C# the custom control is doing something like this: > > > > ============== > > public delegate void UserControlEventHandler(object sender, > > ThinData.Common.UserControlEventArgs e); > > public event UserControlEventHandler UserControlError; ============== > > > > the parent page consuming the control was doing this: > > > > ============== > > > > PersInfo1.UserControlError += new > > > > ClientName.RegistrationUserControls.PersonalInformationForm.UserContro > > lEventHandler(Generic_UserControlError); > > > > ============== > > > > The above works fine using codebehind. > > > > My problem is that within the containing page, when it is converted to > > inline script, the namespace and name: > > ClientName.RegistrationUserControls.PersonalInformationForm... > > > > cannot be resolved properly. The error is "missing assembly > > reference?" > > > > How should I be doing this so I can wire up the event in the parent > > page properly? > > > > Thanks. > > > > > > > Is there a way to retain the use of namespaces when code is converted The primary problem is that VS.NET does things its way and ASP.NET does them > to inline from codebehind? another. This is less the case in VS.NET 2005, since the group at Microsoft is now one (or whole, if you want to think of it that way). -Brock DevelopMentor http://staff.develop.com/ballen
Webform Navigation
Can't set button to Visible? Is someone willing to help me with a simple VB example? Need reviews and advice on web and data control tools and vendors Skin and custom controls (ASP 2.0) Web Custom Control using a property displaying current form text boxes Reach UserControl from ASPX codebehind? Dynamically populating and expanding TreeView from button click... Composite Web Control Open Source or Free PDF Control |
|||||||||||||||||||||||