2013-06-25 122 views
0

的所以在ASP.NET,我只想做到這一點:如何設置OnSelectedIndexChanged在C#代碼隱藏,而不是ASP.net

<asp:ListBox OnSelectedIndexChanged="UpdateModels" runat="server" > </asp:ListBox> 

但我的列表框是一個.ascx文件內。它登記並列入我的實際網頁massupdate.aspx這樣

<%@ Register TagPrefix="mass" TagName="make" Src="~/DynamicData/Make.ascx" %> 
<mass:make id="makeControl" runat="server"/> 

,在我make.ascx.cs我有這個

public ListBox getlistbox() 
    { 

     return DropDownList1; 

    } 

所以,我必須訪問原始列表框,但我不知道如何複製C#中的第一個代碼片段,用於mass.update.aspx的代碼隱藏。

回答

0

首先,在ascx中註冊的事件應該被觸發,即使它被註冊爲頁面上的控件。事件應該通過頁面上的所有控件(或者可能是down?)冒出來,這是webforms的「魔力」的一部分。其次,如果你需要在代碼中設置一個事件處理程序,你可以谷歌「添加事件處理程序.NET控制」,或者你可以鍵入類似的東西在下面,Visual Studio的智能感知應該會自動爲你完成它後,你鍵入「+ =」,你可以從那裏拿走它。

makeControl.getlistbox().OnSelectedIndexChanged += this.Index_Changed 

void Index_Changed(Object sender, EventArgs e) { 
    // whatever you need to do on the event 
} 
+0

謝謝。在工作中很難撿起C#。我的背景是Java,並且事件處理在這裏完全不同。我正在嘗試MakeListBox.SelectedIndexChanged + = UpdateModels();和其他東西。我很近......好吧,無論如何非常感謝你。 –

+0

沒問題,如果你已經知道java,我相信你的語法問題很快就會消失。祝你好運 – welegan

相關問題