C# 重写数据绑定()

C# 重写数据绑定(),c#,asp.net,C#,Asp.net,我有一页 在C#中: 让我们假设aspx文件有两个下拉列表 我希望覆盖DataBind函数,保持当前字符串不变,但我希望更改要绑定的每个项的值 我在谷歌上搜索了一个数据绑定覆盖解决方案,如下所示: public override void DataBind() { //...some implementation here... base.DataBind() } 但是我不确定我是否应该把这个重写方法放在我的类中。另外,如果我有两个下拉列表,并且我想以不同的方式对待它们的数据绑定,

我有一页

在C#中:

让我们假设aspx文件有两个下拉列表

我希望覆盖DataBind函数,保持当前字符串不变,但我希望更改要绑定的每个项的值

我在谷歌上搜索了一个数据绑定覆盖解决方案,如下所示:

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

但是我不确定我是否应该把这个重写方法放在我的类中。另外,如果我有两个下拉列表,并且我想以不同的方式对待它们的数据绑定,我应该如何处理呢?

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

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

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

然后,当其中一个下拉列表涉及的数据更改时,调用
dropdown.DataBind()
方法并在那里处理它。

改为更改传入数据怎么样?在我看来似乎更好。也就是说,看一看“谢谢”。我想这就是我一直在寻找的答案!
protected override void OnLoad(EventArgs e) {
    mydropdown1.DataBinding += binddropdown1;
    mydropdown1.DataBind();
}

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