Salut tous
Je fais quelques tests sur silverlight 1.1 et je rencontre déjà quelque chose que ne comprend pas bien :
sur ma page html j'ai un bouton et un label
associé au bouton :
donc la je mets mon label à "retrieving" pour informer que l'appel à commencer, je demande la lecture d'un fichier xml en asynchrone, et je fais une pose de 2 seconde pour faire genre "le serveur est long à répondre".
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 _ProgressLabel.SetProperty("innerHtml", "Retrieving ") _request = New BrowserHttpWebRequest(New Uri("mon doc .xml")) Dim iar As IAsyncResult = _request.BeginGetResponse(New AsyncCallback(AddressOf ReadFilesXml), _request) Thread.Sleep(2000)
La fonction qui reprend la main :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub ReadFilesXml(ByVal iar As IAsyncResult) Dim response As HttpWebResponse = CType(iar.AsyncState, HttpWebRequest).EndGetResponse(iar) ' If Not response.StatusCode <> HttpStatusCode.OK Then Dim content As Stream = response.GetResponseStream() Dim result As New StringBuilder() Using reader As XmlReader = XmlReader.Create(New StreamReader(content)) While reader.Read() ... _ProgressLabel.SetProperty("innerHtml", "")
donc la je lis mon fichier xml et ça fonctionne très bien.
Deux questions cependant :
1) Mon label ne passe pas par l'état "Retrieving ". Pourquoi ? je pensais que silverlight rafraichissait mes éléments en live
2) ' If Not response.StatusCode <> HttpStatusCode.OK Then : cette ligne est en commentaire, car le response. StatusCode est toujours à 0 (au lieu de 200=OK). Pourquoi? Je peux quand même lire le xml, c'est bizarre.
Merci
Partager