0

ページのフォームビューコントロール内にボタンがあります。

ボタンはフォームビュー内に含まれているため、コードビハインドでは表示されません。

だから私はこれをしました:

Dim btnSave As Button = CType(fvCourse.FindControl("btnSave"), Button)

そして、次のようなイベントハンドラーを追加しました。

AddHandler btnSave.Click, AddressOf btnSave_Click

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Response.write("hey!")
End Sub

問題は、「ねえ!」が表示されないため、機能していないと思うことです。私のページで。

私は何かが足りないのですか?

ありがとう

4

2 に答える 2

2

何かが足りないかどうかはわかりませんが、VBを使用しているので、もっと簡単な方法でそれを行うことができると思います。最初にボタンにコマンド名とコマンド引数を付けます。

<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
CommandArgument="1" CommandName="yes" />

これらは何でもかまいません。通常、コマンド名を使用してユーザーがクリックしたボタンを判別し、コマンド引数を使用してレコードIDを表示します。

コードビハインドで、FormViewのItemCommandイベントにマクロをアタッチします(フォームビュー内で何かが発生したときに発生します)。

 Protected Sub FormView1_ItemCommand(sender As Object, e As System.Web.UI.WebControls.FormViewCommandEventArgs) Handles FormView1.ItemCommand

    Select Case e.CommandName.ToLower
        Case "yes"

            'test
            Label2.Text = "You chose " & e.CommandArgument.ToString

    End Select
End Sub Protected Sub FormView1_ItemCommand(sender As Object, e As System.Web.UI.WebControls.FormViewCommandEventArgs) Handles FormView1.ItemCommand

    Select Case e.CommandName.ToLower
        Case "yes"

            'test
            Label2.Text = "You chose " & e.CommandArgument.ToString

    End Select
End Sub

そしてVBでは、それがあなたがする必要があるすべてです!

于 2012-11-08T16:42:22.023 に答える
1

ItemCreatedそのようなことには、のイベントを使用する必要がありますFormView。にある場合Buttonは、をItemTemplate確認する必要があります。次を使用する必要があります。FormViewMode.ReadOnlyEditItemTemplateEdit

Private Sub fvCourse_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles fvCourse.ItemCreated
    Select Case fvCourse.CurrentMode
        Case FormViewMode.Edit
            Dim btnSave As Button = DirectCast(fvCourse.FindControl("btnSave"), Button)
            AddHandler btnSave.Click, AddressOf btnSave_Click
    End Select
End Sub
于 2012-11-08T16:34:04.320 に答える