Conexion entre WebParts WSS3

10/04/2007 - 12:52 por Laki | Informe spam
Haber si me podeis ayudar :- )

Estoy (intentando) desarrollar unas webparts conectadas, ya sabeis , una
proveedor y otra consumidor, para empezar, estoy probando el codigo que esta
en:

http://www.gavd.net/servers/sharepo...&itm20

He probado el codigo que adjunta y me sucede que no se "pasa" la
informacion, al pulsar el boton,se queda tan tranquilo y no se muestra nada
en el label. Tambien pasa (no se si es importante) que las opciones del
WebPart de "Conexiones --> Enviar informacion a" esta dehabilitado.

¿Alguna ayuda?

Mil gracias

Preguntas similare

Leer las respuestas

#1 Gustavo
11/04/2007 - 08:50 | Informe spam
Hola,
Estas seguro(a) que has implementado la interface (IMensaje en el ejemplo)
correctamente?
Saludes,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Laki" wrote:

Haber si me podeis ayudar :- )

Estoy (intentando) desarrollar unas webparts conectadas, ya sabeis , una
proveedor y otra consumidor, para empezar, estoy probando el codigo que esta
en:

http://www.gavd.net/servers/sharepo...&itm20

He probado el codigo que adjunta y me sucede que no se "pasa" la
informacion, al pulsar el boton,se queda tan tranquilo y no se muestra nada
en el label. Tambien pasa (no se si es importante) que las opciones del
WebPart de "Conexiones --> Enviar informacion a" esta dehabilitado.

¿Alguna ayuda?

Mil gracias

Respuesta Responder a este mensaje
#2 Laki
11/04/2007 - 10:56 | Informe spam
Hola Gustavo, primero darte las gracias por las molestias :-)

Comentar que el objetivo de todo esto, es el siguiente, tengo realizada una
WebPart con tres combos que se alimenta de unas listas, el objetivo es al
seleccionar dos valores (de los dos primeros combos) da un resultado en el
tercer combo y al seleccionalo, quiero que pase ese dato a otra Web part que
desplegara mas informacion. Como decia para probar habia comenzado con un
ejemplo sencillo y luego implementarlo.

Te pongo el codigo que tienen las dos WebParts, seguro que una bobada, pero
no doy con ello.

Codigo fuente de la WebPart "Proveedor"
WebPartProveedor.cs --
using System;
//using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//using System.Xml.Serialization;

//using Microsoft.SharePoint;
//using Microsoft.SharePoint.WebControls;
//using Microsoft.SharePoint.WebPartPages;

public interface IMensaje
{
string Mensaje { get;}
}

namespace WebPartConsumidor
{
//[Guid("a08173e8-cddb-44f1-99e1-279271730026")]
public class WebPartConsumidor : System.Web.UI.WebControls.WebParts.WebPart
{
public WebPartConsumidor()
{
this.ExportMode = WebPartExportMode.All;
}

private IMensaje mensaje;
private Label label;
private Label label0;

[ConnectionConsumer("Mensaje")]
public void ConsumirMensaje(IMensaje imensaje)
{
mensaje = imensaje;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
label0 = new Label();
label0.Text = "v4";
Controls.Add(label0);

label = new Label();
Controls.Add(label);

}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (mensaje != null)
{
label.Text = "oido" + mensaje.Mensaje;
}


}

protected override void Render(HtmlTextWriter writer)
{
label0.RenderControl(writer);
label.RenderControl(writer);
}
}
}


FIN WebPartProveedor.cs --


Este es el codigo fuente de la otra WebPart
WebPartConsumidor.cs --
using System;
//using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//using System.Xml.Serialization;

//using Microsoft.SharePoint;
//using Microsoft.SharePoint.WebControls;
//using Microsoft.SharePoint.WebPartPages;

public interface IMensaje
{
string Mensaje { get;}
}

namespace WebPartConsumidor
{



//[Guid("a08173e8-cddb-44f1-99e1-279271730026")]
public class WebPartConsumidor : System.Web.UI.WebControls.WebParts.WebPart
{
public WebPartConsumidor()
{
this.ExportMode = WebPartExportMode.All;
}

private IMensaje mensaje;
private Label label;
private Label label0;

[ConnectionConsumer("Mensaje")]
public void ConsumirMensaje(IMensaje imensaje)
{
mensaje = imensaje;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
label0 = new Label();
label0.Text = "v4";
Controls.Add(label0);

label = new Label();
Controls.Add(label);

}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (mensaje != null)
{
label.Text = "oido" + mensaje.Mensaje;
}


}

protected override void Render(HtmlTextWriter writer)
{
label0.RenderControl(writer);
label.RenderControl(writer);
}
}
}

FIN WebPartConsumidor.cs --
Respuesta Responder a este mensaje
#3 Gustavo
11/04/2007 - 11:26 | Informe spam
Hola,
O te equivocaste copiando el codigo, o tienes dos consumidores... 8-)
Saludes,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Laki" wrote:

Hola Gustavo, primero darte las gracias por las molestias :-)

Comentar que el objetivo de todo esto, es el siguiente, tengo realizada una
WebPart con tres combos que se alimenta de unas listas, el objetivo es al
seleccionar dos valores (de los dos primeros combos) da un resultado en el
tercer combo y al seleccionalo, quiero que pase ese dato a otra Web part que
desplegara mas informacion. Como decia para probar habia comenzado con un
ejemplo sencillo y luego implementarlo.

Te pongo el codigo que tienen las dos WebParts, seguro que una bobada, pero
no doy con ello.

Codigo fuente de la WebPart "Proveedor"
WebPartProveedor.cs --
using System;
//using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//using System.Xml.Serialization;

//using Microsoft.SharePoint;
//using Microsoft.SharePoint.WebControls;
//using Microsoft.SharePoint.WebPartPages;

public interface IMensaje
{
string Mensaje { get;}
}

namespace WebPartConsumidor
{
//[Guid("a08173e8-cddb-44f1-99e1-279271730026")]
public class WebPartConsumidor : System.Web.UI.WebControls.WebParts.WebPart
{
public WebPartConsumidor()
{
this.ExportMode = WebPartExportMode.All;
}

private IMensaje mensaje;
private Label label;
private Label label0;

[ConnectionConsumer("Mensaje")]
public void ConsumirMensaje(IMensaje imensaje)
{
mensaje = imensaje;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
label0 = new Label();
label0.Text = "v4";
Controls.Add(label0);

label = new Label();
Controls.Add(label);

}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (mensaje != null)
{
label.Text = "oido" + mensaje.Mensaje;
}


}

protected override void Render(HtmlTextWriter writer)
{
label0.RenderControl(writer);
label.RenderControl(writer);
}
}
}


FIN WebPartProveedor.cs --


Este es el codigo fuente de la otra WebPart
WebPartConsumidor.cs --
using System;
//using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//using System.Xml.Serialization;

//using Microsoft.SharePoint;
//using Microsoft.SharePoint.WebControls;
//using Microsoft.SharePoint.WebPartPages;

public interface IMensaje
{
string Mensaje { get;}
}

namespace WebPartConsumidor
{



//[Guid("a08173e8-cddb-44f1-99e1-279271730026")]
public class WebPartConsumidor : System.Web.UI.WebControls.WebParts.WebPart
{
public WebPartConsumidor()
{
this.ExportMode = WebPartExportMode.All;
}

private IMensaje mensaje;
private Label label;
private Label label0;

[ConnectionConsumer("Mensaje")]
public void ConsumirMensaje(IMensaje imensaje)
{
mensaje = imensaje;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
label0 = new Label();
label0.Text = "v4";
Controls.Add(label0);

label = new Label();
Controls.Add(label);

}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (mensaje != null)
{
label.Text = "oido" + mensaje.Mensaje;
}


}

protected override void Render(HtmlTextWriter writer)
{
label0.RenderControl(writer);
label.RenderControl(writer);
}
}
}

FIN WebPartConsumidor.cs --

Respuesta Responder a este mensaje
#4 Laki
11/04/2007 - 14:30 | Informe spam
Pues si, me cole, puse dos veces lo mismo, es que a veces...

Ahora si :-)

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public interface IMensaje
{
string Mensaje { get;}
}

namespace WebPartProveedor
{
// [Guid("271f9165-569f-4f53-b444-a25d0b5d579f")]
public class WebPartProveedor : WebPart, IMensaje
{
private TextBox entrada;
private Button accion;


public WebPartProveedor()
{
this.ExportMode = WebPartExportMode.All;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
entrada = new TextBox();
Controls.Add(entrada);

accion = new Button();
accion.Text = "Proveer";
Controls.Add(accion);

}

protected override void RenderContents(HtmlTextWriter writer)
{
//base.RenderContents(writer);
entrada.RenderControl(writer);
accion.RenderControl(writer);
}


[ConnectionProvider("Mensaje")]
public IMensaje ProveerMensaje()
{
return this;
}
public string Mensaje
{
get { return entrada.Text; }

}
}
}




Pongo el Consumidor :-)

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;


public interface IMensaje
{
string Mensaje { get;}
}
namespace WebPartConsumidor
{

//[Guid("a08173e8-cddb-44f1-99e1-279271730026")]
public class WebPartConsumidor : System.Web.UI.WebControls.WebParts.WebPart
{
public WebPartConsumidor()
{
this.ExportMode = WebPartExportMode.All;
}

private IMensaje mensaje;
private Label label;
private Label label0;

[ConnectionConsumer("Mensaje")]
public void ConsumirMensaje(IMensaje imensaje)
{
mensaje = imensaje;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
label0 = new Label();
label0.Text = "v7";
Controls.Add(label0);

label = new Label();
Controls.Add(label);

}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (mensaje != null)
{
label.Text = mensaje.Mensaje;
}
}

protected override void Render(HtmlTextWriter writer)
{
label0.RenderControl(writer);
writer.Write("<Hr>");
label.RenderControl(writer);
writer.Write("<hr>");
}
}
}
Respuesta Responder a este mensaje
#5 Gustavo
11/04/2007 - 18:16 | Informe spam
Definitivamente no es tu dia... La Interface tiene que estar dentro del
NameSpace, de otra forma ni modo de encontrarla... y en ese caso la otra
WebPart (clase) tiene que tener una referencia a la primera. De otra forma,
tienes que definir la Interface en un ensablado separado.
Saludes,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Laki" wrote:


Pues si, me cole, puse dos veces lo mismo, es que a veces...

Ahora si :-)

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public interface IMensaje
{
string Mensaje { get;}
}

namespace WebPartProveedor
{
// [Guid("271f9165-569f-4f53-b444-a25d0b5d579f")]
public class WebPartProveedor : WebPart, IMensaje
{
private TextBox entrada;
private Button accion;


public WebPartProveedor()
{
this.ExportMode = WebPartExportMode.All;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
entrada = new TextBox();
Controls.Add(entrada);

accion = new Button();
accion.Text = "Proveer";
Controls.Add(accion);

}

protected override void RenderContents(HtmlTextWriter writer)
{
//base.RenderContents(writer);
entrada.RenderControl(writer);
accion.RenderControl(writer);
}


[ConnectionProvider("Mensaje")]
public IMensaje ProveerMensaje()
{
return this;
}
public string Mensaje
{
get { return entrada.Text; }

}
}
}




Pongo el Consumidor :-)

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;


public interface IMensaje
{
string Mensaje { get;}
}
namespace WebPartConsumidor
{

//[Guid("a08173e8-cddb-44f1-99e1-279271730026")]
public class WebPartConsumidor : System.Web.UI.WebControls.WebParts.WebPart
{
public WebPartConsumidor()
{
this.ExportMode = WebPartExportMode.All;
}

private IMensaje mensaje;
private Label label;
private Label label0;

[ConnectionConsumer("Mensaje")]
public void ConsumirMensaje(IMensaje imensaje)
{
mensaje = imensaje;
}

protected override void CreateChildControls()
{
base.CreateChildControls();
label0 = new Label();
label0.Text = "v7";
Controls.Add(label0);

label = new Label();
Controls.Add(label);

}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (mensaje != null)
{
label.Text = mensaje.Mensaje;
}
}

protected override void Render(HtmlTextWriter writer)
{
label0.RenderControl(writer);
writer.Write("<Hr>");
label.RenderControl(writer);
writer.Write("<hr>");
}
}
}


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida