按钮单击事件未触发

时间:2012-09-19 10:53:53

标签: asp.net .net vb.net visual-studio-2010 asp.net-controls

下午全部,

我的网页上有两个用于锁定和解锁网页的按钮,以便用户可以锁定页面并对其进行编辑,而其他用户无法访问该记录,然后解锁此记录,以便其他用户可以编辑这个。

我遇到的问题是按钮不起作用,我不知道为什么。我正在使用图像按钮,但看起来事件没有被触发,我看不到问题,它让我发疯。有人可以看看我的代码......

   <asp:ImageButton ID="btnLock" runat="Server" 
       AlternateText="Click to lock record" ImageUrl="~/images/lock.png" />


   <asp:ImageButton ID="btnUnlock" runat="Server" 
       AlternateText="Click to unlock record" ImageUrl="~/images/unlock.png" />

   <asp:Label ID="lblUserName" runat="server" Font-Bold="True" Font-Size="Medium" 
            ForeColor="#CC3300"></asp:Label>
        <asp:HiddenField ID="hdnIsLockedBy" runat="server" />


 'VB Code for lock button...
  Protected Sub btnLock_Click(sender As Object, e As System.EventArgs) Handles btnLock.Click

    Dim lock As New WeeklyClass

    'Check that the Loggedby field is set to null so the user can then lock the record
    If String.IsNullOrEmpty(lock.LockedBy) Then
        'lock and add the username
        lock.LockedBy = User.Identity.Name
        'global variable islockedby
        hdnIsLockedBy.Value = User.Identity.Name
        'AgendaID required as part of the stored procedure 
        lock.AgendaID = Integer.Parse(lblAgendaNumber.Text)


    End If
    'Save to the database using the Class DAL and the Stored Procedure
    WeeklyClassDAL.LockWeeklyAgenda(lock)

    'Display buttons as expected result
    btnLock.Visible = False
    btnUnlock.Visible = True

    ' Refreshes fields on the page
    Response.Redirect("~/WeeklyAgenda.aspx?Edit=" & lblAgendaNumber.Text)

End Sub

  'VB Code for unlock button...
   Protected Sub btnUnlock_Click(sender As Object, e As System.EventArgs) Handles btnUnlock.Click

    Dim unlock As New WeeklyClass

    ' Check to see if the system has a username
    If hdnIsLockedBy.Value = User.Identity.Name Then
        'set the lockedby field to null
        unlock.LockedBy = hdnIsLockedBy.Value
        'pass the relevent agendaid
        unlock.AgendaID = Integer.Parse(lblAgendaNumber.Text)
    End If


    ' save to the database using the Class DAL
    WeeklyClassDAL.unLockWeeklyAgenda(unlock)

    'Display buttons as expected result
    btnLock.Visible = True
    btnUnlock.Visible = False

    ' Refreshes fields on the page
    Response.Redirect("~/WeeklyAgenda.aspx?Edit=" & lblAgendaNumber.Text)

End Sub

任何帮助都很有用。我一直在看这个年龄,似乎无法找到问题。

此致 贝蒂

3 个答案:

答案 0 :(得分:0)

您需要在按钮中指定Click事件。

OnClick="Button1_Click"

所以你的按钮应该是:

<asp:ImageButton 
            ID="btnLock" 
            runat="Server" 
            AlternateText="Click to lock record" 
            ImageUrl="~/images/lock.png" 
            OnClick="btnLock_Click" />

<asp:ImageButton 
           ID="btnUnlock" 
           runat="Server" 
           AlternateText="Click to unlock record" 
           ImageUrl="~/images/unlock.png" 
           OnClick="btnUnloc_Click />

答案 1 :(得分:0)

你需要添加autopostback =&#34; true&#34;按钮:

<asp:ImageButton ID="btnLock" runat="Server" autopostback="true"
       AlternateText="Click to lock record" ImageUrl="~/images/lock.png" />

否则后面的代码不会被触发。

答案 2 :(得分:0)

您尚未订阅点击事件。您的控件不知道在用户单击它们时必须调用这些函数。

按以下方式订阅这些活动:

<asp:ImageButton ID="btnLock" runat="Server" 
       AlternateText="Click to lock record" ImageUrl="~/images/lock.png"  
       OnClick="btnLock_Click" />


   <asp:ImageButton ID="btnUnlock" runat="Server" 
       AlternateText="Click to unlock record" ImageUrl="~/images/unlock.png"            
       OnClick="btnUnloc_Click />
相关问题