如何将事件(用户定义的函数)分配给动态创建的控件

时间:2011-08-30 20:59:24

标签: asp.net vb.net

这个问题与使用VB的asp.net有关。我将page2链接到page1并将动态创建的表绑定到page2表。

页面的工作方式如下:

  • 通过选择radiobutton control A,它会产生两个radiobutton 控制,B和C

  • 如果用户选择B无线电控制,它会通过用户生成按钮X. 定义函数

  • 所有单选按钮都遵循autopostback属性= true

  • 如果用户单击按钮X,则会出现一个消息框(此部分用用户定义的函数编写)。

直到产生按钮x的程度一切正常。 但目前正在发生的事情是,控制不是来自用户定义的函数,我通过使用addhandler与动态创建的按钮相关联。 我的代码如下。请告诉我这里可以做些什么。

的Default.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="height: 28px">
    <form id="form1" runat="server">
    <div>

        <table style="width:100%;">
            <tr>
                <td>
                    <asp:RadioButton ID="RadioButton1" runat="server" AutoPostBack="True" />
                </td>
            </tr>
        </table>

    </div>
        <table style="width:100%;">
        <tr>
            <td>
                    <!--#include virtual="Default2.aspx"--> 
            </td>
        </tr>
    </table>
    </form>

</body>
</html>

default.aspx.vb

Imports System.Data.SqlClient

Imports System.Environment
Imports System.Web.UI.HtmlControls
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Partial Class _Default
    Inherits System.Web.UI.Page


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If RadioButton1.Checked = True Then
            load_page()
        End If
    End Sub

    Sub load_page()
        Dim tab As New Table()
        Dim tr As New TableRow()
        Dim tc As New TableCell()
        Dim rbtn1 As New RadioButton()
        Dim rbtn2 As New RadioButton()

        rbtn1.Text = 1
        rbtn1.ID = "1"
        rbtn1.GroupName = "rbtn"
        rbtn1.AutoPostBack = True
        rbtn1.EnableViewState = False
        AddHandler rbtn1.CheckedChanged, AddressOf rbtn1_click

        rbtn2.Text = 2
        rbtn2.ID = "2"
        rbtn2.GroupName = "rbtn"
        rbtn2.AutoPostBack = True
        rbtn2.EnableViewState = False
        AddHandler rbtn2.CheckedChanged, AddressOf rbtn2_click

        tc.Controls.Add(rbtn1)
        tc.Controls.Add(rbtn2)
        tr.Cells.Add(tc)
        tab.Rows.Add(tr)
        tabx1.Controls.Add(tab)

    End Sub

    Sub rbtn1_click()
        Dim tab As New Table()
        Dim tr As New TableRow()
        Dim tc As New TableCell()
        Dim btn As New Button

        btn.ID = "btn"
        AddHandler btn.Command, AddressOf btn1_click
        tc.Controls.Add(btn)
        tr.Cells.Add(tc)
        tab.Rows.Add(tr)
        tabx1.Controls.Add(tab)
    End Sub

    Sub rbtn2_click()

    End Sub

    Sub btn1_click()
        MsgBox("hello")
    End Sub
End Class

0 个答案:

没有答案