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
}
}
 

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
}
}


Preguntas similares