Как показать поле ID так же, как отреадируйте в форме редактирования, список SharePoint?

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

Вопрос

Мне нужно показать поле ID в форме редактирования списка SharePoint.

Есть способ сделать это?Я попробовал рассчитанное поле и ничего. Я знаю, что я могу видеть поле ID в поле зрения, и если я покажу как режим доступа. Я использую WSS3.0

Это было полезно?

Решение

Вы можете Метод, который не использует библиотеку jQuery , если вы предпочитаете держать вещи легкими.

Другие советы

Вы можете сделать это, создавая пользовательскую форму редактирования довольно легко.Я обычно вставляю его в HTML-таблицу, отображаемую внутри веб-панели.Там может быть лучший способ сделать это, но это просто, и это работает.

Ключевая линия, которую вы захотите посмотреть на SPFormfield.ControlMode.Это говорит SharePoint, как отобразить элемент управления (неверный, дисплей, редактирование, новое).Итак, что вы хотите сделать, это проверить, если ваш SPFIELD.internalname== «ID» и если оно есть, установите для отображения ControlMode.

Остальное - это просто пух для рендеринга остальной части списка.

Надеюсь, это поможет.

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";
   }
.

}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top