Exporter le champ Nom d’une liste de bibliothèque de documents dans une application mobile
Exporter le champ nom d'une liste de bibliothèque de documents à une application mobile à l'aide de l'Assistant liste SharePoint Visual Studio. Le champ nom n'apparaît pas automatiquement lorsqu'un utilisateur crée une application mobile pour une bibliothèque de documents dans SharePoint. Dans la liste bibliothèque de documents, un utilisateur peut télécharger des documents différents. Un élément de liste pour un document comporte généralement Title, Name et un lien vers le document en tant que propriétés. Si un développeur crée une application Windows Phone 7 par rapport à la bibliothèque de documents, le champ Name n'est pas exporté dans l'Assistant IDE. Par conséquent, le développeur n'a aucun moyen facile de connaître le nom du document. (Cela est dû au fait SharePoint ne prend pas en charge les champs de type « FILE » par défaut.)
Notes
[!REMARQUE] La propriété Title n'inclut pas l'extension de nom de fichier.
Ainsi, si vous souhaitez extraire un document, créer l'URL complète du document et ouvrez le document dans l'application par défaut (par exemple, Word), vous devez écrire du code pour obtenir le nom réel du fichier.
Important : Si vous développez une application pour Windows Phone 8, vous devez utiliser Visual Studio Express 2012 au lieu de Visual Studio 2010 Express. À l’exception de l’environnement de développement, toutes les informations de cet article s’appliquent à la création d’applications pour Windows Phone 8 et Windows Phone 7. > pour plus d’informations, voir How to: Set up an environment for developing mobile apps for SharePoint.
Conditions préalables pour exporter le champ nom d'une bibliothèque de documents
SharePoint
Visual Studio Express 2010 avec les nouveaux modèles SharePoint
Personnaliser les classes générées
Pour exporter Name champ et accès aux pièces jointes à partir d'une bibliothèque de documents, vous devez apporter quelques modifications dans la classe ListDataProvider, DisplayItemViewModel.cs et dans la classe DisplayForm. Lorsqu'un développeur utilise l'Assistant SPList de nouveau à partir de Visual Studio, l'Assistant crée plusieurs classes qui suivent le modèle de conception Model-View-ViewModel. (Pour plus d'informations, voir l'aide du modèle Model-View-ViewModel.) Deux dossiers sont créés : un nommé vues et contient tous les fichiers nécessaires pour modifier les différents affichages de liste (par exemple DisplayForm, EditForm, liste et NewForm). L'autre est nommé ViewModel et contient DisplayItemViewModel, classes EditItemViewModel, ListViewModel et NewItemViewModel. Vous modifierez certaines de ces classes générées par l'Assistant.
Étape 1: Modifier ListDataProvider afin d'extraire la propriété de SPListItem.File
Dans la classe ListDataProvider, ajoutez la ligne suivante de code dans la méthode LoadItem.
Context.Load(spListItem, Item => Item.File);Également dans la classe ListDataProvider, ajoutez le code suivant dans la méthode LoadData.
Context.Load(items, listItems => listItems.Include(item => item.File));
Étape 2: Ajouter les propriétés FileUrl et nom de fichier
- Dans DisplayItemViewModel.cs, ajoutez le code suivant à DisplayVM.
public string m_fileUrl;
public string FileUrl
{
get
{
if (string.IsNullOrEmpty(m_fileUrl))
{
IListDataProvider p = this.DataProvider;
p.LoadItem(this.ID, (LoadItemCompletedEventArgs args) =>
{
FileUrl = this.DataProvider.SiteUrl +
args.Item.File.ServerRelativeUrl;
});
}
return m_fileUrl;
}
set
{
m_fileUrl = value;
RaisePropertyChanged("FileUrl");
}
}
public string m_fileName;
public string FileName
{
get
{
if (string.IsNullOrEmpty(m_fileName))
{
IListDataProvider p = this.DataProvider;
p.LoadItem(this.ID, (LoadItemCompletedEventArgs args) =>
{
FileName = args.Item.File.Name;
});
}
return m_fileName;
}
set
{
m_fileName = value;
RaisePropertyChanged("FileName");
}
}
Étape 3: Ajouter un lien hypertexte à la DisplayForm qui se lie à FileUrl et nom de fichier
- Ajoutez les modifications suivantes au formulaire d'affichage.
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Margin="0,5,0,5">
<TextBlock TextWrapping="Wrap" Width="150" HorizontalAlignment="Left"
Style="{StaticResource PhoneTextNormalStyle}">
FileUrl :
</TextBlock>
<HyperlinkButton Content="{Binding FileName}" NavigateUri="{Binding FileUrl}"
x:Name="hypFile" TargetName="_blank" />
</StackPanel>