Question

J'ai creusé la cervelle essayant d'obtenir ce travail. Mon événement pour mon LinkButton ne se déclenche pas. Je comprendre qu'il a quelque chose à voir avec ViewState et que le bouton est pas là quand il essaie de tirer l'événement après la Postback ou quelque chose.

Lorsque je clique sur le bouton Ajouter, il ajoute le lien vers la page et puis quand je clique sur le temps Diplay » linkbutton il doit déclencher l'événement et afficher les données de CommandArgument mais ce n'est pas et je ne peux pas comprendre pourquoi.

Voici mon code:

<%@ 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>
Était-ce utile?

La solution

La raison qui se passe est que votre bouton dynamique « LBN » doit tirer à nouveau sur le post en arrière quand on clique dessus parce que le bouton n'existe pas une fois que vous cliquez dessus.

Fondamentalement, il vous suffit d'ajouter dynamiquement le bouton à nouveau la page sur le dos de poste de clic de ce bouton.

Je recommande d'avoir le bouton déjà sur la page mais visible = false et puis juste montrer lorsque vous cliquez sur l'autre bouton.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top