それで、最初に、これは投稿された他の2つの好ましい質問に類似していることを述べさせてください。私はこれら(投稿1、投稿2)を参照として使用して状況を改善しようとしましたが、問題の解決に近づいていません。
「WallofCode」を投稿しないように注意しながら、以下に関連するコードを追加しました。
目標
だから私がやろうとしているのは、プログラムで作成されたボタンにクリックイベントを追加することです。各ボタンはpostBackを開始し、ページ全体を再レンダリングせずにデータベースにデータを保存します。
問題
以下の私のコードはコンパイルされますが、ページがレンダリングされるときにイベントはコントロールにバインドされず、「クリック」イベントがボタンにバインドされていることを示すものは何もありません。
私は何か間違ったことをしているのか、それともハックを使わざるを得ないのか、あるいはLinkButtonsの使用を提案した投稿の1つとして疑問に思っています。ただし、私の意見では、LinkButtonsはこのシナリオには不適切な使用法です。LinkButtonとButtonも参照しています。
すべてのフィードバックを歓迎します。ありがとうございました。
page.ascx
<asp:UpdatePanel ID="parentWrapper" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="itemsPlaceHolder" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
page.ascx.vb(コードビハインド)
Protected Sub Items_Load()
'For Brevity purposes, only the itemBtn
'is added to the parent controller. Other controls are omitted on purpose.
'There are 200 other items that will be rendered as well.
Dim itemContainer = New WebControl(HtmlTextWriterTag.Div),
itemBtn = New Button()
itemBtn.Text = "select"
itemBtn.UseSubmitBehavior = False
AddHandler itemBtn.Click, AddressOf ItemSelectBtn_Click
itemContainer.Controls.Add(itemBtn)
WorkshopsPlaceHolder.Controls.Add(itemContainer)
End Sub
Private Sub ItemSelectBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
Response.Write("<script>console.log('clicked & doPostBack')</script>")
End Sub
更新
itemBtn.UseSubmitBehavior = False
だから私はたくさんの研究をしていました、そしてこれは私が私の目標を達成するのを助けるためのこれまでのところ最良の選択肢です。元のページまたはWebサイトが何に役立ったかはわかりませんが、このMSDNリンクにアクセスできました。
このSOの投稿は、Aspボタンタイプを理解するのに役立ちました。
うまくいけば、これは他の誰かを助けるでしょう。
itemBtn.UseSubmitBehavior = False
答えでした。私はMSDNページへのリンクと、私が達成しようとしていたものと同様の別のSO質問を参照していました。
助けてくれたポポ氏に感謝します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加