-1

下午所有,

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

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

   <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

任何帮助都是非常重要的。我已经看这个很久了,似乎找不到问题。

问候贝蒂

4

3 回答 3

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 />
于 2012-09-19T10:55:30.953 回答
0

您需要将 autopostback="true" 添加到按钮:

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

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

于 2012-09-19T10:55:50.330 回答
0

您尚未订阅 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 />
于 2012-09-19T10:59:22.857 回答