asp.net - 在div上执行服务器端代码

标签 asp.net vb.net

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/

相关文章:

html - Visual Studio 评论中的链接?

c# - 如何在 C# Windows 窗体应用程序 (CTRl + alt +Del) 上捕获键盘笔画

c# - 为什么 HttpWebRequest.GetResponse() 在 IIS 下的 ASP.NET 页面中失败?

c# - 爬虫/机器人如何工作?区分机器人/爬虫 http 请求

c# - 列出具有交替颜色的项目

.net - 如何像javascript中的 "name"一样获取服务器控件的 "ClientID"?

.net - 获取耗时跨度 (DateTime) 的年、月、日

VB.net 禁用 TabControl 的 TabPage

c# - 如何显示 Javascript 警报而不是黄页错误

.net - 在重新启动时保留 ASP.NET 应用程序状态