2012-10-10 36 views
0

我有一個頁面。覆蓋DataBind()

在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個下拉菜單。

我想overwride DataBind函數,保持當前字符串相同,但我想要更改我想要綁定每個項目的值。

我GOOGLE了DataBind已覆蓋的解決方案,它看起來如下:

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

,但我不確定我是否應該把thie重寫方法MyClass中。另外,如果我有兩個DropDown,並且我想以不同的方式處理它們的DataBind,那麼我應該如何處理這個?

+0

改變傳入數據呢?我的眼睛似乎更好。這就是說,看看[ItemDataBound事件](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datagrid.itemdatabound.aspx) –

+0

謝謝。我認爲這是我正在尋找的答案! – Rhs

回答

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()方法和處理它。