通常、Page_Loadに配置する必要があるユーザーコントロールにコードを挿入します(他のコンポーネント(DropDownなど)を初期化する)が、Page_Loadの前に発生する必要があります。このコントロールをホストするページASP.NET:親ページのPage_Loadの前に実行
私はPage_Initでこれを入れてみました:
protected void Page_Init(object sender, EventArgs e)
{
if (!IsPostBack)
{
Methods.PopulateWhatList(cboWhatList0, cboWhatList1, fldWhat, Request["WhatId"], true);
Methods.PopulateWhereList(cboWhereList0, cboWhereList1, fldWhere, Request["WhereId"], true);
Methods.PopulateWhoList(cboWho, true, Request["WhoId"]);
Methods.PopulateWhenList(cboWhen, true, Request["WhenId"]);
Methods.PopulatePriceRangeList(cboPriceRange, true, Request["PriceRangeId"]);
}
}
...しかし、いくつかの問題を経験しています。だから、このタイプのコードに最適な場所はどこですか?
私がいる(と無関係であるかもしれない)問題は私のことです:
protected override void Render(HtmlTextWriter writer)
{
Methods.EnableValidationWhereList(cboWhereList1, this.Page);
Methods.EnableValidationWhatList(cboWhatList1, this.Page);
base.Render(writer);
}
は、特定のポストバックで呼び出されていませんか? (LinkButtonを押すと?)
一部のポストバックでRenderメソッド全体が呼び出されていない、または(私が想定している)検証ルーチンがEnableValidation__Listメソッドに追加されていると言っていますか? –
また、それぞれの方法で異なるドロップダウンを行っています - それは間違いありませんか?私は、コントロールライフサイクルのどこかでcbo__List1の内容を設定していると思いますか? EnableValidation__Listは実際に何をしていますか? –