ASPX 페이지로드 이벤트의 매개 변수로 위치를 전달할 때 Google Maps에 위치를 표시하고 페이지가로드 될 때마다 aspx 페이지에서 웹 사용자 컨트롤을 사용하고 있습니다. 위치를 완벽하게 확보하고 있습니다.버튼을 클릭 할 때 Web UserControl을 새로 고치는 방법
사용자가 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 파일과에이 웹 사용자 정의 컨트롤을 포함하고 난 페이지로드 이벤트의 작업에서 위치를 통과하지만, 언제의 Mylocations 값으로 Null 값을 받고 검색 버튼 클릭 이벤트에서 위치를 통과하려고 할 때 웹 사용자 정의 컨트롤을 null로 .. 그래서 새로운 방법으로 사용자 정의 컨트롤을 다시로드 할 수있는 방법이 있습니다.
우리에게 코드를 게시 할 수 있습니까? 페이지로드 이벤트에서 "ispostback"을 사용하십시오. – Backtrack
문제를 해결하기 위해 지금까지 무엇을 시도 했습니까? –