J'essaie de modifier les valeurs par défaut dans la liste déroulante "time" que le DateTimeControl affiche dans Sharepoint. Je veux un incrément de 15, pas 5 minutes. Quelqu'un a une idée de comment cela pourrait être fait? Puis-je surcharger une méthode ou quelque chose?DateTimeControl dans Sharepoint (C#)
Répondre
Malheureusement, cela n'est pas possible en utilisant le champ DateTime initial.
Un champ SharePoint est composé de 2 parties principales. La structure de données (en code) et les différentes vues (à savoir dans une liste, nouveau/modifier/afficher, admin [lors de l'ajout à une liste]). La structure de données hors de la boîte est un champ standard .NET DateTime. Malheureusement, les vues ne donnent que l'incrément de 5 minutes.
Vous pouvez créer le vôtre en héritant du champ par défaut. MSDN a une explication décente de la façon dont. Nick Sevens a une explication beaucoup plus claire.
Malheureusement (comme avec la plupart des personnalisations SharePoint) créer votre propre champ dans CAML peut être difficile.
This project on CodePlex peut être un bon point de départ. Il est sous licence GPL, vous pouvez donc le modifier.
En fait, la liste déroulante de temps et ses initialisateurs sont implémentés en tant que membres de données privés de la classe DateTimeControl. Vous ne pouvez donc pas modifier directement les valeurs. Cependant, la liste déroulante des minutes est préparée dans OnPreRender, nous pouvons obtenir le contrôle et réinitialiser ses valeurs indirectement pour obtenir le comportement souhaité. Voici une approche
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);
}
}
Hope this helps
Aller à
[12] \ TEMPLATE \ LAYOUTS \ 1033 \ Bform.js
En ligne: 7690
changement : this.dminControl = 5; à this.dminControl = 15;
Il fonctionne, mais tous DateTimePickers aura un incrément de 15 minutes
Vous pouvez obtenir la valeur de Heure sélectionnée et minute de la SharePoint:DateTimeControl
en C# par le code suivant:
DateTimeControlName.SelectedDate.Hour
&
DateTimeControlName.SelectedDate.Minute.
Ces déclarations retourneront l'heure et la minute en format Integer
.
Je sais que cet article est assez ancien. Mais je pensais juste que cela pourrait aider quelqu'un à venir à ce poste.
- 1. C# -SharePoint - SPGridView - Regroupement
- 2. SharePoint: comment authentifier de C#
- 3. Comment créer une tâche dans SharePoint avec C#
- 4. Hyperliens dans Sharepoint Webpart
- 5. CSS dans sharepoint
- 6. UI dans Sharepoint
- 7. Silverlight dans webpart Sharepoint
- 8. Implémentation d'AJAX dans Sharepoint
- 9. Sharepoint WebParts
- 10. Modifier Application.Master dans Sharepoint 2007
- 11. Suivi des autorisations dans SharePoint
- 12. Publication automatique .aspx dans SharePoint
- 13. spectateur RSS dans SharePoint étrange
- 14. Éléments de catalogue dans Sharepoint
- 15. Recréation d'un fichier dans SharePoint
- 16. Commandes Sharepoint dans l'application ASP.NET
- 17. Intégration de PowerShell dans SharePoint
- 18. Configuration des alertes dans SharePoint
- 19. Envoyer des courriels dans Sharepoint
- 20. Masquage d'un composant WebPart personnalisé dans SharePoint
- 21. obtenir les utilisateurs par groupe dans sharepoint
- 22. Learning Sharepoint
- 23. Ajout de tâches par programme dans la taskList dans sharepoint
- 24. Sharepoint Wiki
- 25. Sécurité SharePoint
- 26. accessibilité sharepoint
- 27. Sharepoint WebParts
- 28. Sharepoint SPSite
- 29. Approbation SharePoint
- 30. Comment faire une page ASP.Net avec un code C# derrière qui fonctionnera dans Sharepoint
Salut merci, ça a "presque" marché. Il y a juste un petit pépin qui affiche les heures comme: 00-15-30-45-40 Je ne sais pas d'où vient cette 40, je vais essayer de trouver :) –
et ce n'est pas conserve la valeur sélectionnée. Il est difficile de remplacer une classe lorsque vous n'avez pas accès aux sources! : P –
La ligne "this.SelectedDate.Minute" donne toujours l'heure actuelle ... bizarre. –