I'm trying to update an asp repeater from a REST call. My web request has a callback method that binds the results to the repeater. When I do bind the data the repeater doens't update nor do the repeater events fire. Here is my code to provide some context.
Thanks for any help in advance.
<asp:UpdatePanel runat="server" ID="connectFeedUP" UpdateMode="Conditional"><Triggers><asp:AsyncPostBackTrigger ControlID="rptConnectFeed" /></Triggers><ContentTemplate><asp:Repeater runat="server" ID="rptConnectFeed" OnItemDataBound="rptConnectFeed_OnItemBound" ><HeaderTemplate><ul class="ConnectStoryArea"></HeaderTemplate><ItemTemplate><li class="ConnectStory"><div class="ConnectStoryTitle"><a href="<%# Eval("URL")%>"><%# Eval("Subject")%></a></div><div class="ConnectStoryContentInfoArea"><div class="ConnectStoryAuthor"><%# Eval("Author")%></div><div class="ConnectStoryDate"><%# Eval("Date")%></div></div><div class="ConnectStoryContent"><%# Eval("Content") %></div></li></ItemTemplate><FooterTemplate></ul></FooterTemplate></asp:Repeater></ContentTemplate></asp:UpdatePanel> private void DiscussionWebCall() { Uri address = new Uri("https://domain.com"); HttpWebRequest request = (WebRequest.Create(address)) as HttpWebRequest; NetworkCredential netCreds = new NetworkCredential("xxxxxxx", "xxxxx"); if (netCreds != null) { string authInfo = ((netCreds.Domain != null) && (netCreds.Domain.Length > 0) ? netCreds.Domain + @"\" : string.Empty) + netCreds.UserName + ":" + netCreds.Password; authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); request.Headers["Authorization"] = "Basic " + authInfo; } request.BeginGetResponse(ResponseCallback, request); } private void ResponseCallback(IAsyncResult ar) { var request = (HttpWebRequest)ar.AsyncState; var response = request.EndGetResponse(ar); IEnumerable<ConnectDiscussion> discussions; using (var stream = response.GetResponseStream()) using (var reader = new StreamReader(stream)) { var contents = reader.ReadToEnd(); string json = contents.Remove(0, contents.IndexOf('{')); JObject jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json) as JObject; JArray jaDiscussions = (JArray)jsonObj["list"]; //IList<string> joDiscussions = jaDiscussions.Select(c => (string)c["published"]).ToList(); discussions = from d in jaDiscussions select (new ConnectDiscussion() { Author = (string)d["author"]["displayName"], URL = (string)d["resources"]["html"]["ref"], Content = (string)d["content"]["text"], Subject = (string)d["subject"], Date = (DateTime)d["published"] }); } rptConnectFeed.DataSource = discussions.ToList(); rptConnectFeed.DataBind(); }