asp.net 在www.example.com中vb.net,我需要获取预呈现的公共属性,并且仍然捕获单击事件(自定义服务器控件)

ss2ws0br  于 2023-04-13  发布在  .NET
关注(0)|答案(1)|浏览(103)

我无法理解页面的生命周期。
我有一个自定义的服务器控件,只是一个按钮:

Public Class MyButton
Inherits Button

Private Property _identity As String = Nothing

Public Property identity() As String
    Get
        Return _identity
    End Get
    Set(value As String)
        _identity = value
    End Set
End Property

Private Sub MyButton_Load(sender As Object, e As EventArgs) Handles Me.Load
    Me.Text = "Test Button"
    AddHandler Me.Click, AddressOf Me.TestClick
End Sub

Private Sub TestClick(sender As Object, e As EventArgs)
    SomeSub(identity)
    ... The problem is here.
            
End Sub

End Class

“identity”公共属性由页面上的另一个控件提供,我在预呈现之前无法获得该值,因为它是动态生成的;但是当我尝试使用PreRender时,我无法捕获单击事件。
换句话说,“身份”是用动态令牌生成的,所以在我看来,它只是一个占位符。
我已经做了很多基于jQuery的.ashx处理程序的东西,但是这个页面生命周期的东西让我很困惑!

vwkv1x7d

vwkv1x7d1#

你可以在.aspx页面中使用脚本管理器

<asp:scriptmanager runat="server">
</asp:scriptmanager>
      <asp:updatepanel runat="server">
        <contenttemplate>
             <asp:button runat="server" text="Button" /> // your button 
       </contenttemplate>
     </asp:updatepanel>

或者你应该加上触发器

<asp:scriptmanager runat="server">
  </asp:scriptmanager>
      <asp:updatepanel id="UpdatePanel6" runat="server">
               <contenttemplate>
                <Triggers>
                     <asp:PostBackTrigger ControlID="btnCertificateUpload" />
                         <asp:button runat="server" text="Button" /> // your button
                </Triggers>
              </contenttemplate>
            </asp:updatepanel>

确保复选框的“自动回发为真”

相关问题