2013-05-01 101 views
0

我絕對用盡谷歌,我無法找到解決這個問題。單擊.aspx頁面上的按鈕時,相應的函數不會從.aspx.cs文件中調用。我只會發布我的代碼,看看是否有任何接受者。ASP.NET C#按鈕OnClick甚至沒有射擊

AddUser.aspx:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="AddUser.aspx.cs" Inherits="AddUser" %> 

<asp:Content ID="tb_AddUserHeader" ContentPlaceHolderID="tb_HeaderPlaceHolder" Runat="Server"> 
</asp:Content> 

<asp:Content ID="tb_AddUserContent" ContentPlaceHolderID="tb_ContentPlaceHolder" Runat="Server"> 
    <h1>Add User</h1> 
    <fieldset> 
     <asp:Label ID="tb_lblAddUser_Authorized" runat="server" Visible="false"> 
      <br /> 
      <table> 
       <tr> 
        <td><u>Username:</u></td> 
        <td><asp:TextBox ID="tb_txtbxUsername" runat="server" Width="200"></asp:TextBox></td> 
       </tr> 
       <tr> 
        <td><u>Password:</u></td> 
        <td><asp:TextBox ID="tb_txtbxPassword" runat="server" Width="200" TextMode="Password"></asp:TextBox></td> 
       </tr> 
       <tr> 
        <td><u>Account Type:</u></td> 
        <td><asp:DropDownList ID="tb_ddAccountType" runat="server"> 
         <asp:ListItem Value="v" Text="Viewer"></asp:ListItem> 
         <asp:ListItem Value="t" Text="Tester"></asp:ListItem> 
         <asp:ListItem Value="a" Text="Admin"></asp:ListItem> 
         </asp:DropDownList></td> 
       </tr> 
       <tr> 
        <td><asp:Button ID="tb_btnAddUserSubmit" runat="server" Text="Submit" OnClick="tb_btnAddUserSubmit_Click" UseSubmitBehavior="true" /></td> 
       </tr> 
      </table> 
      <br /> 
     </asp:Label> 

     <asp:Label ID="tb_lblAddUser_Output" runat="server" Visible="false"></asp:Label> 

     <asp:Label ID="tb_lblAddUser_Unauthorized" runat="server" Visible="true"> 
      <br />Only administrators are authorized to view this page 
      <br /> 
      <br /> 
     </asp:Label> 
    </fieldset> 
</asp:Content> 

和我的代碼隱藏相應的文件,AddUser.aspx.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using tbBusinessObjects; 
using tbWebClientControllers; 

public partial class AddUser : System.Web.UI.Page 
{ 
    tbWebUserController m_userController; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     m_userController = new tbWebUserController(); 

     //if (this.IsPostBack) 
     //{ 
     // String username = tb_txtbxUsername.Text; 

     // //tb_btnAddUser_Click(sender, e); 
     //} 
     //else 
     { 
      if (HttpContext.Current.User.Identity.IsAuthenticated) 
      { 
       FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity; 
       FormsAuthenticationTicket ticket = id.Ticket; 

       if (ticket.UserData == "a") 
       { 
        tb_lblAddUser_Authorized.Visible = true; 
        tb_lblAddUser_Unauthorized.Visible = false; 
       } 
      } 
     } 
    } 

    protected void tb_btnAddUserSubmit_Click(object sender, EventArgs e) 
    { 
     tbUser user = new tbUser(); 
     user.m_username = tb_txtbxUsername.Text; 
     user.m_password = tb_txtbxPassword.Text; 
     user.m_type = tb_ddAccountType.SelectedValue.ToCharArray()[0]; 

     if (m_userController.InsertUser(user)) 
     { 
      tb_lblAddUser_Output.Text = "<br />User was successfully added<br /><br />"; 
     } 
     else 
     { 
      tb_lblAddUser_Output.Text = "<br />There was an error adding user<br /><br />"; 
     } 

     tb_lblAddUser_Output.Visible = true; 
     tb_lblAddUser_Authorized.Visible = false; 
    } 
} 

我已經在我的點擊功能設置多個斷點和他們從不打。我嘗試用Page.IsPostBack簡單地捕捉我的Page_Load函數,但它沒有任何數據從文本框或下拉列表中保存。

我也嘗試更改true和false之間的UseSubmitBehavior標記並完全刪除它,它仍然不起作用。我從其他使用正在工作的按鈕事件的頁面複製/粘貼了很多代碼,但它仍然無效。我完全不知道現在發生了什麼。 > _ <

編輯:和公正的情況下,它會以任何方式幫助,這是我的Site.Master ...

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

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

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

<head id="tb_head" runat="server"> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
    <title>KersTech Hydraulic/Electric Hybrid Data Recording and Telemetry</title> 

    <link href="tb_style.css" rel="stylesheet" type="text/css" media="screen" /> 

    <asp:ContentPlaceHolder id="tb_HeaderPlaceHolder" runat="server"> 
    </asp:ContentPlaceHolder> 

</head> 

<body> 

<form id="tb_formBody" runat="server"> 

<!-- Begin wrapper --> 
<div id="tb_wrapper"> 
<asp:Label ID="tb_lblFormsAuthenticationUserData" runat="server" Text="Nothing" Visible="false"></asp:Label> 

<!-- Begin top --> 
<div id="tb_top"> 
    <ul id="tb_nav"> 
     <asp:Label ID="tb_lblMasterMenu" runat="server"></asp:Label> 
     <li><asp:LoginStatus ID="tb_LoginStatus" runat="server" LogoutAction="Redirect" LogoutPageUrl="Logout.aspx" /></li> 
    </ul> 
    <div id="tb_Greeting"> 
     <asp:LoginView ID="tb_MasterLoginView" runat="server"> 
      <LoggedInTemplate> 
       Logged in as <asp:LoginName ID="MasterLoginName" runat="server" /> 
      </LoggedInTemplate> 
     </asp:LoginView> 
    </div> 

    <asp:Label ID="test" runat="server"></asp:Label> 
</div> 

<!-- Begin content --> 
<div id="tb_content"> 
    <asp:ContentPlaceHolder id="tb_ContentPlaceHolder" runat="server"> 
    </asp:ContentPlaceHolder> 
</div> 
<!-- End content --> 

<!-- Begin footer --> 
<div id="tb_footer"><div id="something"> 
    <!-- Begin badges --> 
    <div> 
     <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a> <!-- HTML validation badge --> 
     <a href="http://jigsaw.w3.org/css-validator/check/referer"> 
      <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" /> <!-- CSS validation badge --> 
     </a> 
    </div></div> 
    <!-- End badges --> 
</div> 
<!-- End footer --> 

</div> 
<!-- End wrapper --> 

</form> 


</body> 

</html> 

EDIT2:我搬到我的按鈕我的標籤之外,並手動設置按鈕的可見性以及標籤的可見性(這是我首先使用這些標籤的唯一原因),並且它工作得很好。我剛剛花了最後一個半小時試圖解決這個問題,所以如果其他人再次有相同的問題:

ASP:按鈕不會從ASP內部火災:標籤!!!!!

+0

你有沒有試過在Page_Load上放置一個斷點? – yogi 2013-05-01 09:57:24

回答

0

嘗試在頁面加載撞此行

tb_btnAddUserSubmit.Click += new EventHandler(tb_btnAddUserSubmit_Click); 

我認爲這個問題可能是點擊處理程序沒有在click事件註冊

+0

我將UseSubmitBehavior作爲true和false添加了該行,但仍然無效。 :( – 2013-05-01 10:10:48

+0

這是隻發生這個按鈕或您的網站中的所有按鈕? – 2013-05-01 10:17:55

0

有複製從其他頁/應用這種方法?如果是,那麼它將無法工作,所以你需要刪除分配給按鈕的事件和事件名稱,然後去設計並轉到按鈕事件屬性轉到onClick事件旁邊的雙擊它,它會生成事件並自動分配事件名稱到按鈕。這應該工作

0

嘗試AutoEventWireup =「false」在您的頁眉。我在5年內沒有在ASP.net工作過,但我記得有時會打破東西。