NewForm.aspx

23/07/2007 - 17:20 por JHenao | Informe spam
Saludos,
Ahi les va este 'reto'.

Necesito llenar un campo del NewForm.aspx (de un calendario) con x valor (no
me sirve un valor predeterminado porque es un valor dinámico).

Como podría hacer esto (en SharePoint 2007)?

Les paso un par de los múltiples intentos fallidos que hice para esto:

Uno de mis intentos fue con este javaScript :
// ****************************************
var thTags=document.getElementsByTagName(""TH"");
for (var x=0;x<thTags.length;x++)
{
if(thTags(x).innerText ==""Description"")
{
thTags(x).parentElement.value="PRUEBA";
}
}
//****************************************
Este script es una personalización de otro que tome por referencia usado
SharePoint 2003.

Otra de las cosas que intenté fue acceder al campo(para eso averigüé el name
que genera SharePoint : un nombre gigante,viendo el source html) algo asi
como:

//*************************
//document.aspnetForm.nameDelText.value = "value"
document.aspnet.ctl$m$g_f45e4309_1d07.value="funciona..porfavor!!"
//*********************************


Agradezco una luz!

JHenao
MCP
Medellín - Colombia

Preguntas similare

Leer las respuestas

#1 Elecktrus
24/07/2007 - 00:34 | Informe spam
hola, JHenao:

No comentas porque no te han funcionado esas pruebas.
El problema con el que yo me encontraba es que para hacer eso mismo tenia
que meter un webpart con el codigo javascript. Y el formulario no me dejaba
editarlo.

Hay 2 salidas:
- la buena: crea una feature que implemente esa lista, y le indicas que la
pagina para new no es la newform.aspx sino una tuya que incluya el webpart
con el codigo javascript
- la mala: utiliza el designer para añadir el webpart (editor de contenido)
con codigo javascript. En este caso, lo malo es que la pagina se 'ghostiza' y
que ademas pierdes la capacidada de adjuntar ficheros.

Si te vale la opcion mala, debe meter dentro del webpart editor de
contenido, algo asi como:
<script>
var campo=document.getElementByID("ctl$m$g_f45e4309_1d07"); //el nombre en
el codigo fuente
campo.value='mi valor'
</script>

Para saber cual es el nombre del control, debes buscar en el codigo fuente
de la pagina, un elemento de tipo <input id='ctl$Sbvvcbvcvc'> asociado a tu
campo y es el valor que va dentro de la etiqueta id='xxxx'

Mucho ojo, porque si añades campos a tu lista (o cambias el orden de las
columnas, el id te cambia). Es recomendable que añadas el webpart solo cuando
la lista ya sea definitiva.

Espero que esto te pueda ayudar


"JHenao" wrote:

Saludos,
Ahi les va este 'reto'.

Necesito llenar un campo del NewForm.aspx (de un calendario) con x valor (no
me sirve un valor predeterminado porque es un valor dinámico).

Como podría hacer esto (en SharePoint 2007)?

Les paso un par de los múltiples intentos fallidos que hice para esto:

Uno de mis intentos fue con este javaScript :
// ****************************************
var thTags=document.getElementsByTagName(""TH"");
for (var x=0;x<thTags.length;x++)
{
if(thTags(x).innerText ==""Description"")
{
thTags(x).parentElement.value="PRUEBA";
}
}
//****************************************
Este script es una personalización de otro que tome por referencia usado
SharePoint 2003.

Otra de las cosas que intenté fue acceder al campo(para eso averigüé el name
que genera SharePoint : un nombre gigante,viendo el source html) algo asi
como:

//*************************
//document.aspnetForm.nameDelText.value = "value"
document.aspnet.ctl$m$g_f45e4309_1d07.value="funciona..porfavor!!"
//*********************************


Agradezco una luz!

JHenao
MCP
Medellín - Colombia
Respuesta Responder a este mensaje
#2 JHenao
24/07/2007 - 01:30 | Informe spam
Saludos!!!
Te cuento que iba de salida cuando vi tu muy útil post (aquí en Colombia ya
empieza la noche)

Te cuento que me fui por la segunda...se ajusta más a las necesidades
específicas porque la principal idea con esto es reutilizar el form de
sharepoint y fuera de eso ya habia 'customizado' el NewForm.aspx metiendole
los scripts. tambien muchas gracias por las recomendaciones.

Con respecto a tu pregunta sobre que era lo que fallaba : todo, mediante las
muchas formas que utilice nunca me retornaba los campos type text(es como si
no existieran al momento de ejecutarse el script)..bueno pero eso ya es parte
del pasado el codigo que implementé para probar la solución que planteaste
fue este

var oCol = document.all;
alert(oCol.length);
for (iCont=0; iCont<oCol.length; iCont++){
if(oCol(iCont).type=='text')
{
document.write(oCol(iCont).name+'<br>');
oCol(iCont).value='funciono!!';
}
}
ahí asigna un valor de prueba a los campos(realmente ese valor será uno
pasado mediante url a un campo oculto específico).

Estimado de nuevo gracias me sirvió bastante tu post , los intentos que hize
para lograr esto no fueron pocos.


JHenao
MCP
Medellín - Colombia


"Elecktrus" wrote:

hola, JHenao:

No comentas porque no te han funcionado esas pruebas.
El problema con el que yo me encontraba es que para hacer eso mismo tenia
que meter un webpart con el codigo javascript. Y el formulario no me dejaba
editarlo.

Hay 2 salidas:
- la buena: crea una feature que implemente esa lista, y le indicas que la
pagina para new no es la newform.aspx sino una tuya que incluya el webpart
con el codigo javascript
- la mala: utiliza el designer para añadir el webpart (editor de contenido)
con codigo javascript. En este caso, lo malo es que la pagina se 'ghostiza' y
que ademas pierdes la capacidada de adjuntar ficheros.

Si te vale la opcion mala, debe meter dentro del webpart editor de
contenido, algo asi como:
<script>
var campo=document.getElementByID("ctl$m$g_f45e4309_1d07"); //el nombre en
el codigo fuente
campo.value='mi valor'
</script>

Para saber cual es el nombre del control, debes buscar en el codigo fuente
de la pagina, un elemento de tipo <input id='ctl$Sbvvcbvcvc'> asociado a tu
campo y es el valor que va dentro de la etiqueta id='xxxx'

Mucho ojo, porque si añades campos a tu lista (o cambias el orden de las
columnas, el id te cambia). Es recomendable que añadas el webpart solo cuando
la lista ya sea definitiva.

Espero que esto te pueda ayudar


"JHenao" wrote:

> Saludos,
> Ahi les va este 'reto'.
>
> Necesito llenar un campo del NewForm.aspx (de un calendario) con x valor (no
> me sirve un valor predeterminado porque es un valor dinámico).
>
> Como podría hacer esto (en SharePoint 2007)?
>
> Les paso un par de los múltiples intentos fallidos que hice para esto:
>
> Uno de mis intentos fue con este javaScript :
> // ****************************************
> var thTags=document.getElementsByTagName(""TH"");
> for (var x=0;x<thTags.length;x++)
> {
> if(thTags(x).innerText ==""Description"")
> {
> thTags(x).parentElement.value="PRUEBA";
> }
> }
> //****************************************
> Este script es una personalización de otro que tome por referencia usado
> SharePoint 2003.
>
> Otra de las cosas que intenté fue acceder al campo(para eso averigüé el name
> que genera SharePoint : un nombre gigante,viendo el source html) algo asi
> como:
>
> //*************************
> //document.aspnetForm.nameDelText.value = "value"
> document.aspnet.ctl$m$g_f45e4309_1d07.value="funciona..porfavor!!"
> //*********************************
>
>
> Agradezco una luz!
>
> JHenao
> MCP
> Medellín - Colombia
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida