0

if(!isPostBack)ステートメントがありません。

背後にあるCSコード:

 private void TestPlacesApi()
    {
        GeoRequest request = new GeoRequest("LU7 0JX");

        GeoResponse response = request.GetResponse();


        if (response.Status == GeoStatus.ZERO_RESULTS) return;
        GeoLocation location = response.Results[0].Geometry.Location;
        double latitude = location.Latitude;
        double longitude = location.Longitude;

        var placesWebReq = new GPlacesWebRequest
        {
            Latitude = latitude.ToString(),
            Longitide = longitude.ToString(),
            Radius = "7500",
            Types = "restaurant",
            Sensor = "false"
        };
        var url = placesWebReq.GetWebUrlString();
        HttpWebRequest webRequest = WebRequest.Create(@url) as HttpWebRequest;
        webRequest.Timeout = 20000;
        webRequest.Method = "GET";

        webRequest.BeginGetResponse(new AsyncCallback(RequestCompleted), webRequest);
    }

    private void RequestCompleted(IAsyncResult result)
    {
        var request = (HttpWebRequest)result.AsyncState;
        var response = (HttpWebResponse)request.EndGetResponse(result);
        var s = response.GetResponseStream();
        RootObjectPlaces place;
        using (var stream = response.GetResponseStream())
        {
            var r = new StreamReader(stream);
            var resp = r.ReadToEnd();
            place = new RootObjectPlaces();
            JsonConvert.PopulateObject(resp, place);
        }
        List<GLocatedRestaurant> restaurantList = new List<GLocatedRestaurant>();
        foreach (var theplace in place.Results)
        {
            restaurantList.Add(new GLocatedRestaurant
            {
                Icon = theplace.Icon,
                Name = theplace.Name,
                Opening_hours = theplace.Opening_hours,
                Photos = theplace.Photos,
                Price_level = theplace.Price_level,
                Types = theplace.Types,
                Vicinity = theplace.Vicinity,
                Rating = theplace.Rating,
               // Address = Util.GetAddressFromGeometry(theplace.Geometry.Location)
            }
            );


        }   
      this.RestaurantRepeater.DataSource = restaurantList;
           RestaurantRepeater.DataBind();
            //UpdatePanel1.UpdateMode = UpdatePanelUpdateMode.Conditional;
            //UpdatePanel1.Update();

    }

    protected void onDataBind(object sender, RepeaterItemEventArgs e)
    {
        Util.trace("HAHAHA");


    }

およびaspx:

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
      <asp:Repeater ID="RestaurantRepeater" OnItemDataBound="onDataBind"  runat="server">
        <ItemTemplate>

    <div runat="server" id="restaurantsList">
                <div class="restaurantListing" id='restaurantListing'>

                    <img class='restaurantImage' src='<%# DataBinder.Eval(Container.DataItem, "Icon")%>' />



                    <div class="restaurantRightInfo" id='restaurantRightInfo'>
                        <%# DataBinder.Eval(Container.DataItem, "Address")%><br />

                    </div>
                    <div class="ratingInfo" id='ratingInfo'>
                        <%# DataBinder.Eval(Container.DataItem, "Name")%><br />
                         <%# DataBinder.Eval(Container.DataItem, "Opening_hours")%><br />
                         <%# DataBinder.Eval(Container.DataItem, "Rating")%><br />
                         <%# DataBinder.Eval(Container.DataItem, "Vicinity")%><br />



                    </div>
                </div>
            </div>
        </ItemTemplate>
    </asp:Repeater>
                      </ContentTemplate>
            </asp:UpdatePanel>

それが最初のポストバックについてであるのか、それとも最初にページをロードするときにページをロードするのに時間がかかるためかはわかりません。

ポストバックが発生してからしばらくするとrequestCompleted関数が呼び出されるため、更新パネルがあります。更新パネルが機能していると思っていましたが、今では初めてしか機能しません。念のため、updatepanel.update()コードのコメントを外してみましたが、同じことが起こります。OnDataBindにブレークポイントを設定しましたが、これは初めて起動する場合にのみ発生します。それ以外は発砲しません。

リストがまだ作成されていないため、ページの読み込み時にデータをバインドできません。

4

0 に答える 0