【问题标题】:Raising User Control Event VB.NET and passing variable引发用户控制事件 VB.NET 并传递变量
【发布时间】:2014-07-03 10:26:20
【问题描述】:

我正在钻研我不熟悉的领域。我正在创建一个我想在多个表单中使用的用户控件。 (因此是用户控制的原因)。我只熟悉 VB.NET 语言。我用谷歌搜索过,我想我已经接近理解了,但我就是想不通。我的用户控件上有多个按钮。当在我的用户控件上按下“上传”按钮时,我希望它在我的父页面上运行一个名为 UploadFile() 的 Sub,它有一个字符串参数。我将在我的页面上多次使用 UserControl,如下所示:

 <uc1:UploadFile ID="UploadFile1" runat="server" />

 <uc1:UploadFile ID="UploadFile2" runat="server" />

在父页面后面的代码中,我想在用户控件内的上传按钮的 Click 事件上执行此功能。然后,唯一参数将告诉我要将文件上传到哪些文件夹。这样当用户在页面上我的第一个用户控件中上传文件时,它将在我的父页面上运行我的上传子,获取参数“a”并运行我的子,上传我的文档并保存到数据库以获取特定于“一种。然后我会告诉用户控件更改它的标签以显示文件 A 已上传

 Sub something somethingUploadFile1_Click
      UploadFile("a")
 End Sub

 Sub something somethingUploadFile2_Click
      UploadFile("b")
 End Sub

 Sub UploadFile(ByVal myString as string)
       Select Case myString

          Case "a"
             If UploadFile1.FileUpload.HasFile Then
                 'run code to upload file

                 'display label
                 UploadFile1.lblReplaceMsg.Text = "File " & myString & " has been uploaded."
             End If

          Case "b"
            If UploadFile2.FileUpload.HasFile Then
                 'run code to upload file

                 'display label
                 UploadFile2.lblReplaceMsg.Text = "File " & myString & " has been uploaded."
             End If
       End Select
 End Sub

我知道在上面的代码中我应该以某种方式引用我的 UserControl 上的按钮,但我不知道该怎么做。我也知道引发事件和事件委托是其中的两个主要组成部分,但同样,我只是没有弄清楚。你能告诉我如何使用我提供的现有示例来完成我的代码吗?

这是我现有 UserControl 背后的完整代码:

Public Class UploadFile
Inherits System.Web.UI.UserControl

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub

Protected Sub btnUpload_Click(sender As Object, e As EventArgs) Handles btnUpload.Click

End Sub


Protected Sub btnDelete_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles btnDelete.Click

End Sub


Public Property lblViewFile() As Label
    Get
        Return _lblViewFile
    End Get
    Set(ByVal value As Label)
        _lblViewFile = value
    End Set
End Property


Public Property btnDelete() As ImageButton
    Get
        Return _btnDelete
    End Get
    Set(ByVal value As ImageButton)
        _btnDelete = value
    End Set
End Property

Public Property pnlUpload() As Panel
    Get
        Return _pnlUpload
    End Get
    Set(ByVal value As Panel)
        _pnlUpload = value
    End Set
End Property

Public Property FileUpload() As FileUpload
    Get
        Return _FileUpload
    End Get
    Set(ByVal value As FileUpload)
        _FileUpload = value
    End Set
End Property

Public Property btnUpload() As Button
    Get
        Return _btnUpload
    End Get
    Set(ByVal value As Button)
        _btnUpload = value
    End Set
End Property

Public Property lblReplaceMsg() As Label
    Get
        Return _lblReplaceMsg
    End Get
    Set(ByVal value As Label)
        _lblReplaceMsg = value
    End Set
End Property


Private _lblViewFile As Label
Private _btnDelete As ImageButton
Private _pnlUpload As Panel
Private _FileUpload As FileUpload
Private _btnUpload As Button
Private _lblReplaceMsg As Label






 End Class

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    asp.net vb user control raising an event on the calling page

    根据您的结构和数据从 EventArgs 中派生出您需要的参数类并使用它。

    【讨论】:

    • 感谢您的回复,但我需要更多的帮助。
    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多