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 函数,保持当前字符串不变,但我想更改每个要绑定的项目的值。

我搜索了一个 DataBind 覆盖的解决方案,如下所示:

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

但我不确定是否应该将覆盖方法放在 myClass 中。另外,如果我有两个 DropDowns 并且我想以不同的方式处理它们的 DataBinds,我应该如何处理这个问题?

4

1 回答 1

0

您应该收听下拉列表中的单个 DataBinding 事件,而不是在控件的 DataBind 方法中处理它。然后,您也可以单独处理它们中的每一个。

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 回答