¿Cómo mostrar el campo de identificación como el formulario de edición, de una lista de SHAREPOINT?

StackOverflow https://stackoverflow.com/questions/3300662

Pregunta

Necesito mostrar el campo ID en el formulario de edición de una lista de SHAREPOINT.

Hay una manera de hacerlo?Probé un campo calculado y nada. Sé que puedo ver el campo de identificación en la vista, y si me muestro como modo de acceso. Estoy usando wss3.0

¿Fue útil?

Solución

Puede Agregue el campo ID al formulario utilizando un poco de JavaScript en un COWP .

<script type="text/javascript"
   src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>
<script type="text/javascript">

$(function() {
  // Get the ID from the query string
  var id = getQueryString()["ID"];

  // Find the form's main table
  var table = $('table.ms-formtable');

  // Add a row with the ID in
  table.prepend("<tr><td class='ms-formlabel'><h3 class='ms-standardheader'>ID</h3></td>" +
                "<td class='ms-formbody'>" + id + "&nbsp;</td></tr>");
})

function getQueryString() {
  var assoc = new Array();
  var queryString = unescape(location.search.substring(1));
  var keyValues = queryString.split('&');
  for (var i in keyValues) {
    var key = keyValues[i].split('=');
    assoc[key[0]] = key[1];
    }
  return assoc;
}
</script>

Hay una alternativa Método que no usa la biblioteca de jQuery si prefiere mantener las cosas ligeras.

Otros consejos

Puede hacerlo creando un formulario de edición personalizado con bastante facilidad.Por lo general, lo pongo en una tabla HTML prestada dentro de un webpart.Puede haber una mejor manera de hacer eso, pero es simple y funciona.

La línea clave que querrá mirar es SpFormield.ControlMode.Esto le dice a SharePoint cómo mostrar el control (no válido, la pantalla, la edición, la nueva).Entonces, lo que querrá hacer es verificar si su SPFIVE.INTERNALNAME=="ID" y, si es, configure el código de control que se muestra.

El resto es solo pelusa para representar el resto de la lista.

Espero que esto ayude.

HtmlTable hTable = new HtmlTable();
HtmlTableRow hRow = new HtmlTableRow();
HtmlTableCell hCellLabel = new HtmlTableCell();
HtmlTableCell hCellControl = new HtmlTableCell();
SPWeb spWeb = SPContext.Current.Web;

// Get the list we are going to work with
SPList spList = spWeb.Lists["MyList"];

// Loop through the fields
foreach (SPField spField in spList.Fields)
{
   // See if this field is not hidden or hide/show based on your own criteria
   if (!spField.Hidden && !spField.ReadOnlyField && spField.Type != SPFieldType.Attachments && spField.StaticName != "ContentType")
   {
     // Create the label field
     FieldLabel spLabelField = new FieldLabel();
     spLabelField.ControlMode = _view; 
     spLabelField.ListId = spList.ID;
     spLabelField.FieldName = spField.StaticName;

     // Create the form field
     FormField spFormField = new FormField();

// Begin: this is your solution here.
     if (spField.InteralName == "ID")
     { spFormField.ControlMode = SPControlMode.Display; }
     else
     { spFormField.ControlMode = _view; }
// End: the end of your solution.

     spFormField.ListId = spList.ID;
     spFormField.FieldName = spField.InternalName;

     // Add the table row
     hRow = new HtmlTableRow();
     hTable.Rows.Add(hRow);

     // Add the cells
     hCellLabel = new HtmlTableCell();
     hRow.Cells.Add(hCellLabel);
     hCellControl = new HtmlTableCell();
     hRow.Cells.Add(hCellControl);

     // Add the control to the table cells
     hCellLabel.Controls.Add(spLabelField);
     hCellControl.Controls.Add(spFormField);

     // Set the css class of the cell for the SharePoint styles
     hCellLabel.Attributes["class"] = "ms-formlabel";
     hCellControl.Attributes["class"] = "ms-formbody";
   }

}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top