2011-07-08 28 views
1

我有一個<asp:DropDownList>女巫被靜態列表項填充。OnDataBound沒有被解僱的asp:DropDownList與靜態asp:ListItems

<asp:DropDownList ... OnDataBound="handlerMethod"> 
    <asp:ListItem Value="..." Text="..." /> 
    <asp:ListItem Value="..." Text="..." /> 
    <asp:ListItem Value="..." Text="..." /> 
</asp:DropDownList> 

問題是,當列表被填充時,OnDataBound事件不會被觸發。我需要它來觸發以填充下拉列表中的其他數據。

文檔說:

此方法通知任何數據綁定與控件關聯的邏輯已經完成了服務器控制。

我的目光都集中在這個「邏輯」一詞,這使得我的事情,我錯過了當事件被觸發

上,但如果是這樣的話,我怎麼能得到事件觸發或什麼點我可以使用其他事件瞭解清單何時完成填充?

+0

你說靜態嗎?你在'.aspx'文件中輸入它們?如果是這樣,它不會被觸發。我認爲當你使用'.Bind'方法時會觸發它。 – dpp

+0

@domanokz:是的,我在.aspx中輸入。 – brb

回答

2

通常這意味着你已經刪除了AutoEventWireup="true"或將其設置爲false,這就是爲什麼它沒有連接事件。

它也可能意味着在JavaScript中有一些錯誤,不允許再運行代碼。打開檢查器(Firefox中的Chrome,Safari或Firebug - 不要依賴IE開發人員工具)並查看是否有任何可能導致頁面停止的javascript錯誤。

這也意味着handlerMethod沒有正確設置,最好的辦法是刪除HTML部分OnDataBound="handlerMethod"這種方法背後的代碼,然後去design view,打開事件和雙重屬性窗口點擊OnDataBound,它會正確添加事件。在那裏設置一箇中斷點,然後在您的web.config文件中使用debug="true"進行調試。

+0

處理程序方法正確設置;我檢查了。我不明白你的第一點。 JavaScript與此有什麼關係? – brb

+0

它永遠不會讓你做一個帖子! – balexandre