0

ページがあります。

C# の場合:

public class myClass
{
    protected void Page_Load(object sender, EventArgs e)
    {
        mydropdown1.DataSource = location_of_data;
        mydropdown1.DataBind();

        mydropdown2.DataSource = location_of_data;
        mydropdown2.DataBind();
    }
}

aspx ファイルに 2 つのドロップダウンがあるとします。

現在の文字列を同じままにして、DataBind 関数をオーバーライドしたいのですが、Bind する各項目の値を変更したいと考えています。

次のようなDataBindオーバーライドのソリューションをグーグルで検索しました。

public override void DataBind()
{
   //...some implementation here...
   base.DataBind()
}

しかし、オーバーライド メソッドを myClass に配置する必要があるかどうかはわかりません。また、2 つの DropDowns があり、それらの DataBinds を別の方法で扱いたい場合、どのようにアプローチすればよいですか?

4

1 に答える 1

0

コントロールの DataBind メソッドで処理するのではなく、ドロップダウンの個々の DataBinding イベントをリッスンする必要があります。その後、それぞれを個別に処理することもできます。

protected override void OnLoad(EventArgs e) {
    mydropdown1.DataBinding += binddropdown1;
    mydropdown1.DataBind();
}

private void binddropdown1(object sender, EventArgs e) {
    mydropdown1.DataSource = dataSource;
}

次に、いずれかのドロップダウンが関係するデータの変更があった場合、dropdown.DataBind()メソッドを呼び出してそこで処理します。

于 2012-10-10T15:32:49.560 に答える