0
私はこれを機能させるために頭を悩ましています。私のLinkButtonのイベントは発生していません。私はそれがViewStateと何か関係があると考えています。ポストバックや何かの後にイベントを発生させようとすると、ボタンはそこにはありません。ASP.NETでOnCommandを使用してAddHandlerを適用するには
[追加]ボタンをクリックすると、ページへのリンクが追加され、Diplay Timeリンクボタンをクリックするとイベントが発生し、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>
@King: "既にページ上にボタンを表示しておいて、visible = falseとし、他のボタンをクリックしたときに表示することをお勧めします。" - はい、これは私がしようとしていることの非常に簡単な例であることを除いては同意します。これは可能な限り不可能です。リンクボタンの数に制限はありません。 – EdenMachine
これが当てはまる場合は、一連のリンクボタンに一連のハイパーリンクがあり、onclickが隠し変数を設定してページのポストバックを引き起こすのではなく、私がやることです。次に、ページがロードされているかどうかを確認するために、変数の内容のポストバックと依存が、コードの背後にある関数を実行します。 – Avitus
それはかなり毛深くなりますが、Page_Loadのコントロールを追加して、ボタンをクリックしてパネルをクリアしても、それを再び追加する必要があります。 – EdenMachine