Я пытаюсь изменить значения по умолчанию в раскрывающемся списке «время», который отображает DateTimeControl в Sharepoint. Я хочу прирост в 15, а не 5 минут. Кто-нибудь знает, как это можно сделать? Могу ли я перегрузить метод или что-то еще?DateTimeControl в Sharepoint (C#)
ответ
К сожалению, это невозможно, используя поле даты DateTime.
Поле SharePoint состоит из 2 основных частей. Структура данных (в коде) и различные представления (а именно в списке, new/edit/view, admin [при добавлении в список]). Структура данных из коробки является стандартным полем .NET DateTime. К сожалению, представления дают только прирост на 5 минут.
Вы можете создать свой собственный, наследуя от поля по умолчанию. MSDN имеет достойное объяснение того, как. Nick Sevens имеет более четкое объяснение.
К сожалению (как в большинстве настроек SharePoint) создание собственного поля в CAML может быть сложным.
This project on CodePlex может быть хорошей отправной точкой. Он лицензирован под GPL, поэтому вы можете его изменить.
Фактически, как выпадающее время, так и его инициализаторы реализованы как частные члены данных класса DateTimeControl, поэтому вы не можете напрямую изменять значения. Тем не менее, минутный снимок подготовлен внутри OnPreRender, мы можем получить контроль и сбросить его значения косвенно, чтобы получить желаемое поведение. Вот один подход
public class MyDateTimeControl : DateTimeControl
{
protected override void Render(HtmlTextWriter output)
{
DropDownList minuteControl = null;
string[] newMinutesRange = new string[] { "00", "15", "30", "45" };
string[] newMinutesRangeExt = new string[] { "00", "15", "30", "45", "" };
int index = 0;
int selectedMinutes;
try
{
if (!this.DateOnly && this.Controls.Count == 4)
{
minuteControl = (DropDownList)this.Controls[2];
}
}
catch { }
if (minuteControl != null && !this.DateOnly)
{
selectedMinutes = Convert.ToInt32(minuteControl.SelectedValue);
if (selectedMinutes % 15 > 0)
{
index = 4;
newMinutesRangeExt.SetValue(selectedMinutes.ToString(), index);
newMinutesRange = newMinutesRangeExt;
}
else
{
index = selectedMinutes/15;
}
minuteControl.Items.Clear();
minuteControl.SelectedIndex = 0;
minuteControl.DataSource = newMinutesRange;
minuteControl.DataBind();
minuteControl.SelectedIndex = index;
}
base.Render(output);
}
}
Надеется, что это помогает
Перейти к
[12] \ ШАБЛОН \ LAYOUTS \ 1033 \ BFORM.JS
В строке: 7690
Изменить : this.dminControl = 5; - this.dminControl = 15;
Он работает, но все DateTimePickers будет иметь прирост до 15 минут
Вы можете получить значение выбранного Часовая и минутная из SharePoint:DateTimeControl
в C# с помощью следующего кода:
DateTimeControlName.SelectedDate.Hour
&
DateTimeControlName.SelectedDate.Minute.
Эти заявления возвращают час и минуту в формате Integer
.
Я знаю, что это сообщение довольно старое. Но я просто подумал, что это может помочь кому-то прийти на этот пост.
- 1. Sharepoint DateTimeControl
- 2. SharePoint: DateTimeControl внутри губит Календарь навигации
- 3. SharePoint 2010 - Проблемы с установкой DateTimeControl
- 4. Sharepoint DateTimeControl не запускает событие при запуске
- 5. Sharepoint DateTimeControl: установить его на нуль
- 6. DateTimeControl Пользовательское событие OnDateChange не запускается в SharePoint
- 7. sharepoint datetimecontrol принимает значение по умолчанию как сегодняшняя дата
- 8. SharePoint Хостинг-App Использование DateTimeControl Получить ссылку на нулевой
- 9. DateTimeControl ondatechanged событие не срабатывает
- 10. SharePoint DateTimeControl не делает сообщение после изменения времени, когда он меняет дату
- 11. Форма в C#/Sharepoint
- 12. Как использовать sharepoint в C#?
- 13. C# -SharePoint - SPGridView - группировка
- 14. SharePoint XML Parse C#
- 15. Sharepoint - интегрировать приложение C#
- 16. Получение списка Sharepoint C#
- 17. Как изменить формат управления SharePoint Datetime
- 18. sharepoint datetime control Метод ClearSelection не работает в событии OnDateChanged
- 19. Сравните список Sharepoint с C#
- 20. SharePoint 2010, Reflection using C#
- 21. Excel addin (C#) + SharePoint 2003
- 22. C# -Подробнее данные списка Sharepoint
- 23. C# Windows Application SharePoint Login
- 24. Показать простой C# в «sharepoint online»
- 25. Вложения с использованием C# в Sharepoint
- 26. регистрация в sharepoint через C# programatically
- 27. Изменить ows_MetaInfo в Sharepoint с помощью C#
- 28. C# SharePoint объединить несколько ListItemCollection в один
- 29. Создать Sharepoint 2010 WebPart страницу в C#
- 30. Удалить элемент в списке Sharepoint (C#)
Эй, спасибо, это «почти» сработало. Есть только небольшой сбой, который отображает часы, такие как: 00-15-30-45-40 Я не знаю, откуда это 40, я попытаюсь выяснить: – 2009-06-10 13:43:54
, и это не так сохранить выбранное значение. Трудно переопределить класс, когда у вас нет доступа к источникам! : P – 2009-06-10 13:47:17
Линия «this.SelectedDate.Minute» всегда дает текущее время ... странное. – 2009-06-10 14:04:44