【问题标题】:Override DataBind()覆盖 DataBind()
【发布时间】:2012-10-10 14:28:24
【问题描述】:

我有一个页面。

在 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,我应该如何处理这个问题?

【问题讨论】:

  • 改变传入的数据怎么样?在我看来似乎更好。也就是说,看看ItemDataBound event
  • 谢谢。我想这就是我一直在寻找的答案!

标签: c# asp.net


【解决方案1】:

您应该监听下拉列表中的单个 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() 方法并在那里进行处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 2012-01-28
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2020-06-06
    相关资源
    最近更新 更多