2016-10-26 92 views
0

當焦點進入HTML下拉列表時,我無法調用Server Side LoadStudent()方法。在Html和asp.net中加載服務器端函數onfocus

服務器端的編碼

Imports System.Data.SqlClient 

Public Class FeeEntry 
    Public Sub LoadStudent() 
     MsgBox("Called") 
     Using cmd As New SqlCommand("SELECT StudentName FROM Student") 
      cmd.CommandType = CommandType.Text 
      cmd.Connection = con 
      'con.Open() 
      DropDownList1.DataSource = cmd.ExecuteReader() 
      DropDownList1.DataTextField = "StudentName" 
      DropDownList1.DataValueField = "StudentName" 
      DropDownList1.DataBind() 
      con.Close() 
     End Using 
    End Sub 

End Class 

HTML代碼

<asp:DropDownList ID = "DropDownList1" runat="server" onfocus="LoadStudent()" CssClass ="form-control"> 
      </asp:DropDownList> 

回答

0

onfocus事件將是一個主要客戶端的事件,這是用來觸發JavaScript和其他客戶端基於行爲。

你可能會想要做的是調用Page_Load事件中LoadStudent()方法在您的網頁上最初的裝入和取出以前onfocus屬性:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
     ' If it is the first time the page is being loaded, bind your data ' 
     If Not IsPostBack Then 
      LoadStudent() 
     End If 
End Sub 

如果這是不可行的,你可能會想要創建另一個服務器端事件來執行您的加載,並在您的DropDownList上設置AutoPostBack="True"以及您決定使用的事件。

舉例來說,如果你有包含所有個別學生的單獨列表,你可以調用LoadStudent()事件時,這些改變之一:

<asp:DropDownList ID="StudentsList" AutoPostBack="True" OnSelectedIndexChanged="LoadStudents">...</asp>DropDownList> 
+0

兄弟下拉列表將被填充將按照所選學生課,所以它必須寫在onfocus或onblur我不能寫在頁面加載事件 –

+0

你可以設置一個事件,當你的具體學生選擇被更改,將更新DropDownList?假設你的學生在一個單獨的列表中,只需設置一個事件來確定它何時發生變化,然後調用LoadStudent()方法。 –

相關問題