0

私はこれを機能させるために頭を悩ませてきました。LinkBut​​tonのイベントが発生していません。私はそれがViewStateと関係があること、そしてポストバックか何かの後にイベントを発生させようとしたときにボタンがそこにないことを考えています。

[追加]ボタンをクリックすると、ページにリンクが追加され、[表示時間]リンクボタンをクリックすると、イベントが発生してCommandArgumentデータが表示されますが、表示されないため、理由がわかりません。

これが私のコードです:

<%@ Page Language="VB" %>

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

<script runat="server">

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

    End Sub

    Protected Sub btnDelete_OnCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
        Response.Write(e.CommandArgument)
    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim btn As New LinkButton()
        btn.ID = "lbn"
        btn.Text = "Display Time"
        btn.ValidationGroup = "vgDeleteSigner"
        AddHandler btn.Command, AddressOf btnDelete_OnCommand
        btn.CommandArgument = Now.TimeOfDay.ToString()
        btn.EnableViewState = True
        Panel1.Controls.Add(btn)
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
        <asp:Panel ID="Panel1" runat="server">
        </asp:Panel>
    </div>
    </form>
</body>
</html>
4

1 に答える 1

1

発生している理由は、ボタンをクリックした後にボタンが存在しないため、動的ボタン「lbn」がクリックされたときにポストバックで再度描画する必要があるためです。

基本的には、ボタンをクリックした後、ボタンをページに動的に追加する必要があります。

ボタンはすでにページ上にありますが、visible = falseにして、他のボタンをクリックしたときに表示することをお勧めします。

于 2009-06-15T19:10:40.027 に答える