2010-06-18 2 views
1

У меня есть пользовательский элемент управления C#, который я использую для отображения адресной формы. В элементе управления у меня есть выбор для выбора состояния. В pageload я устанавливаю значения по умолчанию для выбора. У меня есть открытый метод, в котором я передаю переменную, чтобы назначить всю адресную информацию.Проблема Установка htmlSelect после pageload

Моя проблема в том, что выбор не обновляется, чтобы иметь правильное выбранное значение при запуске моего метода. Есть предположения?

Ниже приведен код:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

//Epicor Soap Stuff 
using Clientele.Application.Client; 
using Clientele.Application.Common; 
using Clientele.Modules.Party.Common; 
using Clientele.Modules.Party.Interface; 

using System.Configuration; 
using System.Net; 
using System.Data; 

namespace AccountCenterUserControls.Address 
{ 
    public partial class AddressFieldSet : System.Web.UI.UserControl 
    { 
     //Credentials 
     static String EpicorWSLogin = ConfigurationManager.AppSettings["EpicorWSLogin"].ToString(); 
     static String EpicorWSPassword = ConfigurationManager.AppSettings["EpicorWSPassword"].ToString(); 
     static String EpicorWSDomain = ConfigurationManager.AppSettings["EpicorWSDomain"].ToString(); 
     NetworkCredential myCredentials = new NetworkCredential(EpicorWSLogin, EpicorWSPassword, EpicorWSDomain); 

     private epicor_Organization.OrganizationFullDataSet.PhysicalAddressRow _Address; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      //Load Address Data 
      epicor_ValueListEntry.ValueListEntry ValueListEntryWS = new epicor_ValueListEntry.ValueListEntry(); 
      ValueListEntryWS.Credentials = myCredentials; 

      region.DataSource = ValueListEntryWS.GetByListID(ValueListName.PhysicalAddressRegion).ValueListEntry.Select("", "Description ASC"); 
      region.DataTextField = "Description"; 
      region.DataValueField = "Entry"; 
      region.DataBind(); 

      country.DataSource = ValueListEntryWS.GetByListID(ValueListName.PhysicalAddressCountry).ValueListEntry; 
      country.DataTextField = "Entry"; 
      country.DataValueField = "ValueListEntryID"; 
      country.DataBind(); 

      //Set some inteligent defaults for the state/country dropdown 
      country.Value = Clientele.Modules.Party.Interface.Country.USA.ToString(); 
      region.Value = "MD"; 
     } 

     public void Set(epicor_Organization.OrganizationFullDataSet.PhysicalAddressRow Address) 
     { 
      _Address = Address; 

      address1.Value = Address["Address1"].ToString(); 
      address2.Value = Address["Address2"].ToString(); 
      address3.Value = Address["Address3"].ToString(); 
      city.Value = Address["City"].ToString(); 
      zip.Value = Address["PostalCode"].ToString(); 
      region.Value = Address["Region_"].ToString(); 
      country.Value = Address["CountryID"].ToString(); 
     } 

     public epicor_Organization.OrganizationFullDataSet.PhysicalAddressRow Get() 
     { 
      _Address["Address1"]=address1.Value; 
      _Address["Address2"]= address2.Value; 
      _Address["Address3"]=address3.Value ; 
      _Address["City"] = city.Value; 
      _Address["PostalCode"] = zip.Value; 
      _Address["Region"] = region.Value; 
      _Address["CountryID"] = country.Value; 

      return _Address; 
     } 

    } 
} 

От родителя controlI вызова функции Set() в этом Page_Load событие. Все данные, кроме моих выборок, устанавливаются правильно.

Является ли моя проблема, что я не могу установить значение select после события Page_Load? Как я могу обойти это?

ответ

1

Я понял это. Событие Page_Load запускается после моего метода Set. Я поменял событие Page_Load для Page_Init, и все хорошо.

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