ASPX代码
<div id="c" runat="server" onclick="loadContentFamily" onmousedown="loadContentFamily" rel="divUpdatePanel" >Family</div>
服务器端代码
Public Sub loadContentFamily(ByVal PageName As String)
MsgBox("")
PageName = "Family"
Dim _con As New SqlConnection(ConfigurationManager.ConnectionStrings("LeaveDBConnectionString").ConnectionString)
Dim _da As New SqlDataAdapter("SELECT PageHeader,PageContent FROM PageKeeper WHERE PageName='" & PageName & "'", _con)
Dim _table As New DataTable
Try
_con.Open()
_da.Fill(_table)
_con.Close()
_con.Dispose()
With _table.Rows(0)
h4header.InnerText = .Item(0)
divUpdatePanel.InnerHtml = .Item(1)
Me.Title = .Item(0)
End With
Catch ex As Exception
MsgBox(ex.Message)
divUpdatePanel.InnerText = "No Data Found"
Finally
_con.Close()
_con.Dispose()
End Try
End Sub
问题:
当我单击div时,它不执行ServerSide Code...。
最佳答案
您需要引发一个服务器事件,而不是客户端事件(看起来您想异步地执行该事件)。
This article解释了如何将代码片段附加到客户端元素(如DIV
)并引起异步回发。
完成此操作的另一种快速而肮脏的方法是使用隐藏的服务器按钮。该按钮可以位于所需的任何位置(例如UpdatePanel
内部),并且可以正确使用ASP页面的生命周期。
<asp:Button runat="server" id="btnPostback" style="display:none" onclick="serverEventHandler" />
<div onclick="document.getElementById('<%= btnPostback.ClientID %>').click()">Clickable DIV</div>
关于asp.net - 在div上执行服务器端代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294626/