2013-07-25 2 views
0

Я использую веб-пользовательский элемент управления на странице aspx для отображения местоположений на карте Google, в которую я передаю местоположения в качестве параметров из события загрузки страницы ASPX и всякий раз, когда страница загружается. я получаю места отлично.Как обновить веб-пользовательский контроль при нажатии кнопки

Мне нужно изменить местоположения, когда пользователь ищет конкретное место при нажатии кнопки «Поиск» на странице ASPX, и я передаю местоположения веб-пользовательскому элементу управления в событии клика «поиск», но не смог получить местоположения на веб-пользовательском элементе управления.

public partial class MapControl : System.Web.UI.UserControl 
{ 
    public List<string> MyLocation {get; set; } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     GeoCode geocode; 
     List<GMarker> markers = new List<GMarker>(); 
     for (int i = 0; i < MyLocation.Count(); i++) 
     { 
      geocode = GMap1.getGeoCodeRequest(MyLocation[i]); 
      GLatLng gLatLng = new GLatLng(geocode.Placemark.coordinates.lat, geocode.Placemark.coordinates.lng); 
      GMap1.setCenter(gLatLng, 20, GMapType.GTypes.Normal); 
      GMarker oMarker = new GMarker(gLatLng); 
      markers.Add(oMarker); 
      //GMap1.Add(oMarker); 
      GListener listener = new GListener(oMarker.ID, GListener.Event.click, string.Format(@"function() {{ var w = new google.maps.InfoWindow(); w.setContent('<center>{0}</center>'); w.open({1}, {2});}}", "<b>" + MyLocation[i] + "</b>", GMap1.GMap_Id, oMarker.ID)); 
      GMap1.Add(listener); 
     } 

     GMap1.Add(new GMapUI()); 
     GMap1.GZoom = 10; 

protected void Button1_Click1(object sender, EventArgs e) 
    { 
List<string> locations = new List<string>(); 
       for (int i = 0; i < ListView1.Items.Count; i++) 
       { 
        Label addressline1 = (Label)this.ListView1.Items[i].FindControl("addr1"); 
        string addrloc = addressline1.Text; 
        locations.Add(addrloc); 
       } 
       MapControl mc = LoadControl("~/MapControl.ascx") as MapControl; 
       mc.MyLocation = locations; 
} 

И я включил этот контроль веб-пользователей в search.aspx файл и и когда я прошел от места событий загрузки страницы его работы, но когда я попытался передать места из события кнопки поиска клик получать Null значение в Mylocations значения Управление веб-пользователями как null .. так что есть ли способ перезагрузить элемент управления пользователя с более новыми местоположениями.

+0

Можете ли вы выслать нам код? И используйте «ispostback» в событии загрузки страницы – Backtrack

+0

Что вы пытались решить, чтобы решить вашу проблему. –

ответ

0

Я думаю, вы можете использовать здесь updatepanel. Вы должны сохранить карту google в панели обновления и установить триггер этой кнопки на свою карту. Тогда я думаю, вы получите то, что хотите. Если какие-либо путаные PLS дайте мне знать

+0

Привет, Спасибо за ответ. Я сохранил карту google в веб-пользовательском элементе управления, и, как вы уже сказали, я сохранил пользовательский контроль на панели обновления вместе с триггерами, но я не могу передать местоположения в этом элементе управления веб-пользователя на кнопке нажмите .. Как будто мы видим события жизненного цикла asp-страницы ** Контрольные события ** будут запущены после события ** Загрузить ** на странице, чтобы пользовательский элемент управления был загружен до события нажатия кнопки и остановил меня, чтобы передать значения местоположения ... Есть ли способ загрузить пользовательский элемент управления после нажатия кнопки с новыми значениями – user1203530

+0

[ссылка] (http://stackoverflow.com/questions/14207174/load-user-control-dynamically-on-button-click) –

+0

http://stackoverflow.com/questions/14207174/load-user-control-dynamically-on-button-click Перейдите по этой ссылке. Это может быть полезно для вас. –

Смежные вопросы