24 Marzo 2009 por chuletillas
Problema: Al ir a publicar un formulario infopath que lleva código en un servidor Sharepoint, cuando va a hacer el build del código, me sale un error diciendo que ha habido un error al compilar el código asociado al formulario. Sin embargo, si le hago el build a la solución desde el editor, la solución compila bien.
Solución: Comprueba que la ruta a la carpeta donde se encuentra la solución no sea demasiado larga. Se puede hacer la prueba moviendo la carpeta con la solución al directorio raiz, e indicarle a infopath la nueva ruta de la solución.
Escrito en .net, MOSS | Deja un Comentario »
25 Febrero 2009 por chuletillas
Problema: Estoy usando callbacks para traerme datos del servidor (implementando el interfaz System.Web.UI.ICallbackEventHandler) , pero cuando lanzo varios a la vez (es decir, que algunos callbacks empiezan sin que hayan terminado los anteriores) esto no parece comportarse como debiera.
Solución: Hay un error en la implementación del método WebForm_CallbackComplete() que es generado por asp.net cuando estamos usando el método Page.ClientScript.GetCallbackEventReference para que nos cree los scripts necesarios para realizar los callbacks (versión de cuando escribo esto: .NET 3.5)
Para arreglarlo hay que sustituir la función en cuestión por ésta otra. Para ello la incluimos en nuestra página aspx:
function WebForm_CallbackComplete_SyncFixed() {
for (var i = 0; i < __pendingCallbacks.length; i++) {
callbackObject = __pendingCallbacks[ i ];
if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {
if (!__pendingCallbacks[ i ].async) {
__synchronousCallBackIndex = -1;
}
__pendingCallbacks[i] = null;
var callbackFrameID = "__CALLBACKFRAME" + i;
var xmlRequestFrame = document.getElementById(callbackFrameID);
if (xmlRequestFrame) {
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
}
WebForm_ExecuteCallback(callbackObject);
}
}
}
Y para que nuestra página use esta función en vez de la que da problemas, incluimos también esto al final de la página:
if (typeof (WebForm_CallbackComplete) == "function") {
WebForm_CallbackComplete = WebForm_CallbackComplete_SyncFixed;
}
El código para la solución ha sido tomado de aquí
Escrito en .net, javascript | Deja un Comentario »
24 Febrero 2009 por chuletillas
Problema: Estoy enviando un correo utilizando la función SPUtility.SendEmail de Sharepoint, pero los correos llegan truncados.
Solución: La función SPUtility.SendEmail no trunca el correo en sí, sino las líneas que lo componen. Seguramente el body está formado en una sola línea que excede el número de caracteres por líneas permitido. Con partir el body en varias lineas se debería solucionar.
Escrito en MOSS | Deja un Comentario »
16 Enero 2009 por chuletillas
Problema: ¿Cuáles son los tipos de columna que se le pueden meter a un gridview que está enlazado a datos? y luego, ¿cómo puedo acceder a los datos ?
Solución: En éste enlace se pueden ver los tipos de columnas
http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.datacontrolfield(VS.80).aspx
Y para acceder a los datos, usaremos el evento RowDataBound, el cual se lanza después de que se haya realizado un bind a una fila por cada registro. Como parámetro nos llegará la fila a la que se le acaba de hacer el bind, y para acceder a los datos solo tendremos que hacer lo siguiente:
String texto = ((DataRowView) e.Row.DataItem)["campodelaquerydeldataset"].ToString();
Donde “e” sería el argumento del evento que contiene a la fila afectada.
Escrito en .net | Deja un Comentario »
10 Diciembre 2008 por chuletillas
Problema: Tengo un objeto XmlDocument y quiero sacar el xml para meterlo en un objeto string. La propiedad innerXml no me vale porque me sale sin formatear, sin saltos de línea ni tabulaciones.
Solución: Usar un objeto XmlTextWriter. Para guardarlo en un objeto string necesitamos además un objeto StringWriter. Quedaría tal que así:
Using System.Xml;
Using System.IO;
StringWriter sw = new StringWriter();
XmlTextWriter xw = new XmlTextWriter(sw);
xw.Formatting = Formatting.Indented;
doc.WriteTo(xw);
string resultado = sw.ToString();
(doc en este ejemplo se corresponde al objeto XmlDocument que contiene el xml)
Etiquetas: .net, xml
Escrito en .net | Deja un Comentario »
10 Diciembre 2008 por chuletillas
Problema: Estoy trabajando en .net con xml, usando para ello un objeto System.Xml.XmlDocument . El xml tiene unos prefijos delante del nombre de las etiquetas, y cuando intento operar con los nodos del documento me salen errores del tipo “Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.”
Solución: Los prefijos se corresponden a espacios de nombres (namespaces) de xml. Para poder trabajar con ellos debemos declarar el namespace y agregarlo a un objeto XmlNameSpaceManager. Luego en los métodos, deberemos incluir este objeto como un parámetro más.
Ejemplo:
string mgrName = “http://miNamespace.com“;
XmlNamespaceManager mgr = new XmlNamespaceManager(new NameTable());
mgr.AddNamespace(“p”, mgrName);
(donde ”p” sería el prefijo de las etiquetas)
Etiquetas: .net, c#, xml
Escrito en .net | Deja un Comentario »
2 Noviembre 2008 por chuletillas
Problema: Estoy trabajando con Visual Studio 2008, y cuando pongo breakpoints en el código javascript, la ejecución no se para en ellos.
Solución: En el navegador debe estar habilitada la depuración de scripts. Si se está usando Internet Explorer, se puede encontrar en Herramientas -> Opciones de internet -> Opciones avanzadas -> Deshabilitar la depuración de scripts (hay que desmarcarlo)
Si además se está desarrollando una aplicación de silverlight, para debugar en javascript hay que deshabilitar la depuración de silverlight (Propiedades del proyecto web -> Web -> debuggers)
Etiquetas: debug, javascript, Silverlight, Visual Studio
Escrito en Visual Studio | Deja un Comentario »
29 Septiembre 2008 por chuletillas
Etiquetas: MOSS, sharepoint, sharepoint designer
Escrito en MOSS | Deja un Comentario »
29 Septiembre 2008 por chuletillas
Problema. Voy a usar el método select de un datatable para traerme unas filas, pero en la expresión tengo que incluir un caracter especial (Por ej. el ‘%’) y no sé cómo se indica esto.
Solución. Introducir el caracter especial entre corchetes: Ej. “columna like valor[%]“
Si necesitáramos incluir un corchete, tendríamos que hacerlo con la barra invertida. Ej: “\]”
Mas información sobre las expresiones de datatable.select aquí:
http://msdn.microsoft.com/es-es/library/system.data.datacolumn.expression(VS.80).aspx
Etiquetas: .net, c#, caracteres
Escrito en .net | Deja un Comentario »
29 Septiembre 2008 por chuletillas
Problema. Quiero abrir un archivo excel desde el código en un script component, y no se como va lo de la cadena de conexión.
Solución. Usar este formato de cadena de conexión:
Provider = Microsoft.Jet.OLEDB.4.0; Data Source =<rutadearchivo>; Extended Properties = “Excel 8.0; HDR = No; IMEX = 1″
Nota: El parámetro HDR es para que tome la primera fila como los nombres de las columnas. En este caso, es que no. El parámetro IMEX = 1 es para indicar que las columnas contienen varios tipos de datos. En este caso le indicamos que es así. Si no lo hiciéramos y en las columnas hubiera varios tipos, se asumiría uno de ellos y todos los que no fueran convertibles a ese tipo nos llegarían en blanco.
Etiquetas: connection string, excel
Escrito en SSIS | Deja un Comentario »