C# 如何在单击按钮时刷新Web用户控件

C# 如何在单击按钮时刷新Web用户控件,c#,asp.net,C#,Asp.net,我在一个aspx页面上使用一个web用户控件来显示google地图上的位置,我将位置作为参数从aspx页面加载事件传递到该地图中,每当加载页面时,我都能完美地获得位置 每当用户单击ASPX页面上的“搜索”按钮搜索特定位置时,我必须更改位置,并且我在“搜索”按钮单击事件中将位置传递给web用户控件,但无法将位置传递到web用户控件 public partial class MapControl : System.Web.UI.UserControl { public List<str

我在一个aspx页面上使用一个web用户控件来显示google地图上的位置,我将位置作为参数从aspx页面加载事件传递到该地图中,每当加载页面时,我都能完美地获得位置

每当用户单击ASPX页面上的“搜索”按钮搜索特定位置时,我必须更改位置,并且我在“搜索”按钮单击事件中将位置传递给web用户控件,但无法将位置传递到web用户控件

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;
}
公共部分类映射控件:System.Web.UI.UserControl
{
公共列表MyLocation{get;set;}
受保护的无效页面加载(对象发送方、事件参数e)
{
地理编码;
列表标记=新列表();
对于(int i=0;i

我将这个web用户控件包含在Search.aspx文件中,当我从页面加载事件传递位置时,它会工作,但当我试图从搜索按钮传递位置时,单击事件将Null值作为Null值传递到web用户控件的Mylocations值中。那么有没有办法用较新的位置重新加载用户控件。

k您可以使用此处的updatepanel。您必须将google地图保留在更新面板中,并将此按钮的触发器设置到地图上。然后我认为您将得到您想要的。如果有任何混淆,请告诉我

您可以将代码发布给我们吗?并使用“ispostback”在页面加载事件中,到目前为止您尝试了什么来解决您的问题。您好,感谢您的回复,我将google map保留在一个web用户控件中,正如您所说,我将用户控件保留在更新面板中以及触发器中,但我无法在单击按钮时传递此web用户控件中的位置。好像我们看到asp页面生命周期事件控件一样事件将在页面的加载事件之后激发,以便在按钮单击事件之前加载用户控件,并阻止我传递位置值…是否有任何方法在按钮单击之后加载用户控件,并使用较新的值转到此链接。这可能对您有帮助。