У меня проблема с передачей переменной с главной страницы, содержащей пользовательский элемент управления, в сам пользовательский элемент управления. Хотя переданная переменная обычно доступна в коде программной части пользовательского элемента управления, событие page_load не может ее прочитать.
Мой код -
В коде программной части главной страницы:
protected void FindCCFsButton_Click(object sender, EventArgs e)
{
if (CustomerDropDown.SelectedIndex != 0)
{ SearchUcCCFList.SetCustID(CustomerDropDown.SelectedValue); }
}
(SearchUcCCFList - это экземпляр пользовательского элемента управления на главной странице aspx). В управляющем коде пользователя позади:
public partial class ucCCFList : System.Web.UI.UserControl
{
public string srchCust { get; set; }
public void SetCustID(string custID)
{
srchCust = custID;
testCustLabel.Text = GetCustID(); //this works
}
public string GetCustID()
{
return srchCust;
}
protected void Page_Load(object sender, EventArgs e)
{
CCFGridView.DataSource = DAL.SearchCCFs(custID : GetCustID()); //doesn't work
CCFGridView.DataBind();
test2CustLabel.Text = GetCustID(); //doesn't work
}
В событии Page_Load GetCustId () ничего не возвращает (поэтому записи не фильтруются и все возвращаются), хотя его можно прочитать в методах за пределами Page_Load.
Я, вероятно, делаю ошибку новичка, но любая помощь будет принята с благодарностью.
Изменить - следуя предложению Алана в комментариях, я прошел через последовательность загрузки страницы, и оказалось, что событие Page_Load пользовательского элемента управления запускается ДО нажатия кнопки на главной странице, поэтому переменная еще не доступна. Последовательность после нажатия кнопки следующая:
- Пользовательский элемент управления Page_Load запускается
- Код в событии кнопки на главной странице
- Другой код (за пределами Page_Load) в пользовательском элементе управления запускается, поэтому переменная доступна здесь.
Это кажется немного странным, есть ли другой способ передать переменную в пользовательские элементы управления Page_Load?
SearchUcCCFList.SetCustID
? Он должен быть до или в Page_Load страницы - person Tim B James   schedule 02.11.2011