Asp.net

在 div click 上執行伺服器端程式碼

  • February 10, 2022

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 它不執行伺服器端程式碼…為什麼??任何幫助表示讚賞。

您需要引發伺服器事件,而不是客戶端事件(看起來您想非同步執行此操作)。

實現此目的的一種快速而骯髒的方法是使用隱藏的伺服器按鈕。該按鈕可以位於任何需要的位置(例如在 內部UpdatePanel),它允許正確使用 ASP 頁面生命週期。

<asp:Button runat="server" id="btnPostback" style="display:none" onclick="serverEventHandler" />

<div onclick="document.getElementById('<%= btnPostback.ClientID %>').click()">Clickable DIV</div>

引用自:https://stackoverflow.com/questions/9294626