AYUDA CON WEB CUSTOM CONTROLS

05/09/2003 - 16:53 por KMILO | Informe spam
Hola a todos espero que me puedan ayudar

Hice un control personalizado para punto net el cual quiero que desde una
propiedad del control lance un cuadro de dialogo para obtener la ruta del
archivo al cual deseo hacer referencia, para ello cree una forma tipo
windows en el proyecto web custom control y hago referencia a los atributos
que son necesarios para que el detecte que hay una forma de edicion y la
lance, bueno cual es el problema, la cosa es que NO sale la forma para
editar el path del archivo, me falta alguna referencia o algo asi???

PD. en un proyecto que vi hacian algo como una clase con propiedades de una
forma, sera eso lo que me falta? como se hace eso?

De antemano Muchas Gracias

Adjunto codigo:


using System;
using System.Web.UI;
using System.ComponentModel;
using Microsoft.ContentManagement.Publishing;
using Microsoft.ContentManagement.Publishing.Extensions.Placeholders;
using Microsoft.ContentManagement.WebControls.Design;
using Microsoft.ContentManagement.WebControls;
using System.Web.UI.WebControls;

namespace CoheteGetForm
{
public class GetXml : System.Drawing.Design.UITypeEditor
{
public string ShowForm()
{
CoheteForm.CoheteGetXml objForm;
objForm = new CoheteForm.CoheteGetXml();
objForm.ShowDialog();
return objForm.Path;
}
}
}
namespace CohetePlaceHolder
{
[
SupportedPlaceholderDefinitionType( typeof(HtmlPlaceholderDefinition ) ),
Designer(typeof(CoheteForm.CoheteGetXml)),
ParseChildren(false)
]
public class CohetePH : BasePlaceholderControl
{
#region Propierties
string strPath;
[
Browsable(true),
Editor(typeof(CoheteForm.CoheteGetXml),typeof(System.Drawing.Design.UITypeEd
itor)),
Description("Escriba aca la ruta donde se encuentra el XML para los
estilos"),
Category("Data"),
DefaultValue("")
]
public string Path
{
get
{
return this.strPath;
}
set
{
this.strPath = value;
}
}
#endregion
#region Constructor
public CohetePH()
{
Path = "";
}
#endregion
#region Overrides Methods
protected override void CreateAuthoringChildControls(BaseModeContainer
authoringContainer)
{
this.authoringOnlyAuthoringControl = new TextBox();
authoringContainer.Controls.Add( this.authoringOnlyAuthoringControl );
}
protected override void CreatePresentationChildControls(BaseModeContainer
presentationContainer) {}
protected override void
LoadPlaceholderContentForAuthoring(PlaceholderControlEventArgs e)
{
EnsureChildControls();
try
{
this.authoringOnlyAuthoringControl.Text = "<content>" +
((HtmlPlaceholder)this.BoundPlaceholder).Text.ToString() + "</content>";
}
catch (Exception) {}
}
protected override void
LoadPlaceholderContentForPresentation(PlaceholderControlEventArgs e) {}
protected override void
SavePlaceholderContent(PlaceholderControlSaveEventArgs e)
{
EnsureChildControls();
try
{
((HtmlPlaceholder)this.BoundPlaceholder).Html this.authoringOnlyAuthoringControl.Text;
}
catch (Exception exp)
{
string newExceptionMessage = String.Format( "[{0} \"{1}\"] Error saving
placeholder contents: {2}", this.GetType().Name, this.ID, exp.Message);
Exception overriddenException = new Exception(newExceptionMessage, exp);
throw overriddenException;
}
}
private TextBox authoringOnlyAuthoringControl;
#endregion
}
}

Preguntas similare

Leer las respuestas

#1 Diego Gonzalez
05/09/2003 - 18:31 | Informe spam
Si solo quieres abrir un archivo Xml puedes ahorrarte el tiempo de hacer un
UITypeEditor y usar el ya existente. Solo tienes que poner este atributo en
tu propiedad:

[EditorAttribute(typeof(System.Web.UI.Design.XmlFileEditor),
typeof(UITypeEditor))]

Suerte,
Diego González
Lagash Systems SA
"KMILO" wrote in message
news:
Hola a todos espero que me puedan ayudar

Hice un control personalizado para punto net el cual quiero que desde una
propiedad del control lance un cuadro de dialogo para obtener la ruta del
archivo al cual deseo hacer referencia, para ello cree una forma tipo
windows en el proyecto web custom control y hago referencia a los


atributos
que son necesarios para que el detecte que hay una forma de edicion y la
lance, bueno cual es el problema, la cosa es que NO sale la forma para
editar el path del archivo, me falta alguna referencia o algo asi???

PD. en un proyecto que vi hacian algo como una clase con propiedades de


una
forma, sera eso lo que me falta? como se hace eso?

De antemano Muchas Gracias

Adjunto codigo:


using System;
using System.Web.UI;
using System.ComponentModel;
using Microsoft.ContentManagement.Publishing;
using Microsoft.ContentManagement.Publishing.Extensions.Placeholders;
using Microsoft.ContentManagement.WebControls.Design;
using Microsoft.ContentManagement.WebControls;
using System.Web.UI.WebControls;

namespace CoheteGetForm
{
public class GetXml : System.Drawing.Design.UITypeEditor
{
public string ShowForm()
{
CoheteForm.CoheteGetXml objForm;
objForm = new CoheteForm.CoheteGetXml();
objForm.ShowDialog();
return objForm.Path;
}
}
}
namespace CohetePlaceHolder
{
[
SupportedPlaceholderDefinitionType( typeof(HtmlPlaceholderDefinition ) ),
Designer(typeof(CoheteForm.CoheteGetXml)),
ParseChildren(false)
]
public class CohetePH : BasePlaceholderControl
{
#region Propierties
string strPath;
[
Browsable(true),



Editor(typeof(CoheteForm.CoheteGetXml),typeof(System.Drawing.Design.UITypeEd
itor)),
Description("Escriba aca la ruta donde se encuentra el XML para los
estilos"),
Category("Data"),
DefaultValue("")
]
public string Path
{
get
{
return this.strPath;
}
set
{
this.strPath = value;
}
}
#endregion
#region Constructor
public CohetePH()
{
Path = "";
}
#endregion
#region Overrides Methods
protected override void CreateAuthoringChildControls(BaseModeContainer
authoringContainer)
{
this.authoringOnlyAuthoringControl = new TextBox();
authoringContainer.Controls.Add( this.authoringOnlyAuthoringControl );
}
protected override void CreatePresentationChildControls(BaseModeContainer
presentationContainer) {}
protected override void
LoadPlaceholderContentForAuthoring(PlaceholderControlEventArgs e)
{
EnsureChildControls();
try
{
this.authoringOnlyAuthoringControl.Text = "<content>" +
((HtmlPlaceholder)this.BoundPlaceholder).Text.ToString() + "</content>";
}
catch (Exception) {}
}
protected override void
LoadPlaceholderContentForPresentation(PlaceholderControlEventArgs e) {}
protected override void
SavePlaceholderContent(PlaceholderControlSaveEventArgs e)
{
EnsureChildControls();
try
{
((HtmlPlaceholder)this.BoundPlaceholder).Html > this.authoringOnlyAuthoringControl.Text;
}
catch (Exception exp)
{
string newExceptionMessage = String.Format( "[{0} \"{1}\"] Error saving
placeholder contents: {2}", this.GetType().Name, this.ID, exp.Message);
Exception overriddenException = new Exception(newExceptionMessage, exp);
throw overriddenException;
}
}
private TextBox authoringOnlyAuthoringControl;
#endregion
}
}


Respuesta Responder a este mensaje
#2 KMILO
08/09/2003 - 15:44 | Informe spam
Perfecto esa era la solucion, ahora tengo una pregunta adicional para vos si
no te molesta... necesito meter una imagen dentro del componente, esta
imagen debe ser embebida, como hago para hacer esto, ya adheri la imagen
tipo bmp, ahora como hago para codificarla dentro del componente para que
quede dentro de la dll final y mucho mas importante como hago para dibujarla
dentro del control y en caso del icono para que haga referencia a este, esto
sin tener ningun tipo de imagen por fuera del control.

De antemano muchas gracias..

"Diego Gonzalez" wrote in message
news:
Si solo quieres abrir un archivo Xml puedes ahorrarte el tiempo de hacer


un
UITypeEditor y usar el ya existente. Solo tienes que poner este atributo


en
tu propiedad:

[EditorAttribute(typeof(System.Web.UI.Design.XmlFileEditor),
typeof(UITypeEditor))]

Suerte,
Diego González
Lagash Systems SA
"KMILO" wrote in message
news:
> Hola a todos espero que me puedan ayudar
>
> Hice un control personalizado para punto net el cual quiero que desde


una
> propiedad del control lance un cuadro de dialogo para obtener la ruta


del
> archivo al cual deseo hacer referencia, para ello cree una forma tipo
> windows en el proyecto web custom control y hago referencia a los
atributos
> que son necesarios para que el detecte que hay una forma de edicion y la
> lance, bueno cual es el problema, la cosa es que NO sale la forma para
> editar el path del archivo, me falta alguna referencia o algo asi???
>
> PD. en un proyecto que vi hacian algo como una clase con propiedades de
una
> forma, sera eso lo que me falta? como se hace eso?
>
> De antemano Muchas Gracias
>
> Adjunto codigo:
>
>
> using System;
> using System.Web.UI;
> using System.ComponentModel;
> using Microsoft.ContentManagement.Publishing;
> using Microsoft.ContentManagement.Publishing.Extensions.Placeholders;
> using Microsoft.ContentManagement.WebControls.Design;
> using Microsoft.ContentManagement.WebControls;
> using System.Web.UI.WebControls;
>
> namespace CoheteGetForm
> {
> public class GetXml : System.Drawing.Design.UITypeEditor
> {
> public string ShowForm()
> {
> CoheteForm.CoheteGetXml objForm;
> objForm = new CoheteForm.CoheteGetXml();
> objForm.ShowDialog();
> return objForm.Path;
> }
> }
> }
> namespace CohetePlaceHolder
> {
> [
> SupportedPlaceholderDefinitionType(


typeof(HtmlPlaceholderDefinition ) ),
> Designer(typeof(CoheteForm.CoheteGetXml)),
> ParseChildren(false)
> ]
> public class CohetePH : BasePlaceholderControl
> {
> #region Propierties
> string strPath;
> [
> Browsable(true),
>



Editor(typeof(CoheteForm.CoheteGetXml),typeof(System.Drawing.Design.UITypeEd
> itor)),
> Description("Escriba aca la ruta donde se encuentra el XML para los
> estilos"),
> Category("Data"),
> DefaultValue("")
> ]
> public string Path
> {
> get
> {
> return this.strPath;
> }
> set
> {
> this.strPath = value;
> }
> }
> #endregion
> #region Constructor
> public CohetePH()
> {
> Path = "";
> }
> #endregion
> #region Overrides Methods
> protected override void CreateAuthoringChildControls(BaseModeContainer
> authoringContainer)
> {
> this.authoringOnlyAuthoringControl = new TextBox();
> authoringContainer.Controls.Add( this.authoringOnlyAuthoringControl );
> }
> protected override void


CreatePresentationChildControls(BaseModeContainer
> presentationContainer) {}
> protected override void
> LoadPlaceholderContentForAuthoring(PlaceholderControlEventArgs e)
> {
> EnsureChildControls();
> try
> {
> this.authoringOnlyAuthoringControl.Text = "<content>" +
> ((HtmlPlaceholder)this.BoundPlaceholder).Text.ToString() + "</content>";
> }
> catch (Exception) {}
> }
> protected override void
> LoadPlaceholderContentForPresentation(PlaceholderControlEventArgs e) {}
> protected override void
> SavePlaceholderContent(PlaceholderControlSaveEventArgs e)
> {
> EnsureChildControls();
> try
> {
> ((HtmlPlaceholder)this.BoundPlaceholder).Html > > this.authoringOnlyAuthoringControl.Text;
> }
> catch (Exception exp)
> {
> string newExceptionMessage = String.Format( "[{0} \"{1}\"] Error saving
> placeholder contents: {2}", this.GetType().Name, this.ID, exp.Message);
> Exception overriddenException = new Exception(newExceptionMessage, exp);
> throw overriddenException;
> }
> }
> private TextBox authoringOnlyAuthoringControl;
> #endregion
> }
> }
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida