我有一个页面。
在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中使用thie override方法。此外,如果我有两个DropDowns并且我想以不同方式对待他们的DataBinds,我应该如何处理它?</ p>
答案 0 :(得分: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()
方法并在那里处理。