2009-08-16 48 views
0

當ASP.NET按鈕沒有觸發事件時,需要檢查什麼?asp.net - events

我已經雙擊按鈕添加事件處理程序。

但事件沒有解僱。

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="TeacherControlPanel.aspx.cs" Inherits="Teacher_TeacherControlPanel" Title="Untitled Page" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <table style="width: 346px"> 
     <tr> 
      <td> 
       <asp:Label ID="labErrorMessage" runat="server" Font-Bold="True" Font-Names="Verdana" 
        Font-Size="Small" ForeColor="#C00000" Text="Error Message"></asp:Label></td> 
      <td> 
       </td> 
      <td> 
       </td> 
      <td> 
       </td> 
     </tr> 
     <tr> 
      <td> 
       Teacher Control Panel</td> 
      <td> 
       Mails</td> 
      <td> 
       Notices</td> 
      <td> 
       Uploads</td> 
     </tr> 
     <tr> 
      <td rowspan="3"> 
       <table style="width: 134px"> 
        <tr> 
         <td> 
          Username:</td> 
         <td> 
          <asp:Label ID="labUsername" runat="server" Text="labUsername"></asp:Label></td> 
         <td> 
          Teacher Code: 
         </td> 
         <td style="width: 3px"> 
          <asp:Label ID="labTeacherCode" runat="server" Text="labTeacherCode"></asp:Label></td> 

        </tr> 
        <tr> 
         <td> 
          Name :</td> 
         <td> 
          <asp:Label ID="labName" runat="server" Text="labName"></asp:Label></td> 
         <td> 
          Department</td> 
         <td style="width: 3px"> 
          <asp:Label ID="labDepartment" runat="server" Text="labDepartment"></asp:Label></td> 
        </tr> 
        <tr> 
         <td> 
         </td> 
         <td> 
         </td> 
         <td> 
         </td> 
         <td style="width: 3px"> 
         </td> 
        </tr> 
        <tr> 
         <td> 
         </td> 
         <td> 
         </td> 
         <td> 
         </td> 
         <td style="width: 3px"> 
         </td> 
        </tr> 
       </table> 
      </td> 
      <td> 
       <asp:Button ID="btnSendMail" runat="server" Height="24px" Text="Send Mail" Width="130px" OnClick="btnSendMail_Click" /></td> 
      <td> 
       <asp:Button ID="btnSubmitNewNotice" runat="server" Height="24px" Text="Submit New Notice" 
        Width="130px" /></td> 
      <td> 
       <asp:Button ID="btnViewUploads" runat="server" Height="24px" Text="ViewUploads" Width="130px" /></td> 
     </tr> 
     <tr> 
      <td> 
       <asp:Button ID="btnViewOldMails" runat="server" Text="View Old Mails" OnClick="btnViewOldMails_Click" /></td> 
      <td> 
       <asp:Button ID="btnViewOldNotices" runat="server" Height="24px" Text="View Old Notices" 
        Width="130px" /></td> 
      <td> 
       <asp:Button ID="btnViewDefaulters" runat="server" Height="24px" Text="View Defaulters" 
        Width="130px" /></td> 
     </tr> 
     <tr> 
      <td> 
       <asp:Button ID="btnReceivedMails" runat="server" Height="24px" Text="Received Mails" 
        Width="130px" /></td> 
      <td> 
      </td> 
      <td> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="4" rowspan="1"> 
       <asp:GridView ID="UploadsGridView1" runat="server"> 
       </asp:GridView> 
      </td> 
     </tr> 
    </table> 
</asp:Content> 

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

using Ice_Web_Portal.ASP.NET.Utils; 
using Ice_Web_Portal.BO; 

public partial class Teacher_TeacherControlPanel : System.Web.UI.Page 
{ 
    string username = string.Empty; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     username = (string)Request.QueryString["username"]; 

     Teacher teacher = Teacher.GetTeacherByUsername(username); 

     if (teacher != null) 
     { 
      labUsername.Text = username; 
      labName.Text = teacher.TeacherName; 
      labTeacherCode.Text = teacher.TeacherCode; 

      Dept dept = teacher.Department; 

      if (dept != null) 
      { 
       labDepartment.Text = dept.DeptName; 
      } 
     } 
     else 
     { 
      labErrorMessage.Text = "No teacher found"; 
     } 
    } 

    protected void btnSendMail_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      Server.Transfer(@"~/Teacher/TeacherSendMail.aspx?username=" + username); 
      //Response.Redirect(@"~/Student/StudentSendMail.aspx?username=" + username); 
     } 
     catch (Exception ex) 
     { 
      string m; 
     } 
    } 

    protected void btnViewOldMails_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      Server.Transfer(@"~/Teacher/TeacherOldMail.aspx?username=" + username); 
      //Response.Redirect(@"~/Student/StudentSendMail.aspx?username=" + username); 
     } 
     catch (Exception ex) 
     { 
      string m; 
     } 
    } 
} 

這是母版頁:

MasterPage.master 
----------------- 
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 

    <table> 
     <tr> 
     <td><asp:HyperLink ID="homePageHyperlink" runat="server" NavigateUrl="~/Default.aspx">Home</asp:HyperLink></td>   
     <td rowspan="5">&nbsp;<asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> 
     </asp:contentplaceholder></td> 
     </tr> 
     <tr> 
     <td><asp:HyperLink ID="studentControlPanelHyperlink" runat="server">Student</asp:HyperLink></td>   
     </tr> 
     <tr> 
     <td></td>   
     </tr> 
     <tr> 
     <td></td> 
     </tr> 
     <tr> 
     <td></td> 
     </tr> 
    </table>  
    </form> 
</body> 
</html> 

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class MasterPage : System.Web.UI.MasterPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 
+0

你能否加個主頁面的代碼 – 2009-08-16 19:06:44

+0

查看更新。 – 2009-08-16 19:09:03

+0

您是否真的必須發佈所有這些才能讓我們重現您的問題? – 2009-08-16 19:10:26

回答

1

請按順序嘗試以下操作來診斷問題:

  1. 在網站中創建一個新的頂級頁面。向它添加一個按鈕。雙擊該按鈕以添加事件處理程序。在事件處理程序中設置一個斷點,並在點擊按鈕時查看它是否被命中。
  2. 使用相同的母版頁在網站中創建一個新的內容頁面。向它添加一個按鈕。雙擊該按鈕以添加事件處理程序。在事件處理程序中設置一個斷點,並在點擊按鈕時查看它是否被命中。
  3. 在網站中創建新的母版頁。添加一個內容佔位符到它,沒有別的。用這個新的主人在網站上創建一個新的內容頁面。向它添加一個按鈕。雙擊該按鈕以添加事件處理程序。在事件處理程序中設置一個斷點,並在點擊按鈕時查看它是否被命中。
0

我在使用Web應用程序項目代碼和一切工作正常。您是否使用網絡應用程序或網站項目?

什麼是您使用的版本框架?

您試過哪個按鈕?

+0

我正在使用VS2005和網站項目。框架是,.net 2.0.xxx – 2009-08-16 19:31:57

+0

ID == btnSendMail – 2009-08-16 19:34:11

+0

嘗試使用Web應用程序Web站點。很多bug都在網站項目中。 – 2009-08-16 19:35:11

0

嘗試另一個角度 - 以OnClick屬性關閉asp:Button的和明確的代碼添加事件處理落後於OnInit

protected override void OnInit(EventArgs e) 
{ 
    btnSendMail.Click += new EventHandler(btnSendMail_Click); 
    base.OnInit(e); 
} 
+0

這是一個網站項目 - 將工作?代碼文件(它不是「CodeBehind」)能夠看到「'btnSendMail'」字段嗎? – 2009-08-16 19:56:37

+0

我沒有Visual Studio 2005,但有2008年,您可以在2008年的網站項目中完成上述操作。 – 2009-08-16 20:38:49