2011-12-16 35 views
0

您認爲webforms中的事件(任何控件,文本框,按鈕等)不會觸發什麼?創建此類事件時需要檢查和考慮哪些事情?事件不會觸發的原因是什麼?

考慮以下代碼:

<%@ Page Language="C#" MasterPageFile="~/App_Theme/TranByEmployeeMaster.master" AutoEventWireup="true" 
    CodeFile="ProcessEmployeePenalty.aspx.cs" Inherits="Transactions_ProcessEmployeePenalty" 
    Title="Untitled Page" %> 

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server"> 
    <asp:GridView ID="gvEmployees" runat="server" HeaderStyle-CssClass="HeaderStyle" 
     RowStyle-CssClass="RowStyle" AlternatingRowStyle-CssClass="AlternatingRowStyle" 
     FooterStyle-CssClass="FooterStyleGrid" EmptyDataRowStyle-BackColor="White" AutoGenerateColumns="False" 
     EmptyDataText="No result were found." ShowFooter="true" DataKeyNames="EmployeePenaltyID"> 
     <Columns> 
      <asp:TemplateField HeaderText="No."> 
       <ItemTemplate> 
        <asp:Label ID="lblNo" runat="server" Text='<%# gvEmployees.Rows.Count + 1 %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Update"> 
       <ItemTemplate> 
        <asp:ImageButton ID="btnUpdateEmployeeGrid" runat="server" ImageUrl="~/App_Resources/images/content/Edit.gif" 
         CommandName="Update" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Delete"> 
       <ItemTemplate> 
        <asp:ImageButton ID="btnDeleteEmployeeGrid" runat="server" ImageUrl="~/App_Resources/images/content/Delete.png" 
         CommandName="Delete" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:ButtonField HeaderText="EmployeeID" DataTextField="EmployeeID" /> 
      <asp:ButtonField HeaderText="Penalty Nature" DataTextField="PenaltyNature" /> 
      <asp:ButtonField HeaderText="Penalty Description" DataTextField="PenaltyDescription" /> 
      <asp:ButtonField HeaderText="Penalty Amount" DataTextField="PenaltyAmount" /> 
     </Columns> 
    </asp:GridView> 
    <%--<asp:Button ID="btnAddPenalty" runat="server" Text="Add Penalty" OnClick="btnAddPenalty_Clicked" 
       OnClientClick="return confirm('Are you certain to post the selected cutoff?');" />--%> 
    <asp:ImageButton ID="btnAddPenalty" runat="server" SkinID="Add" OnClick="btnAddPenalty_Clicked" /> 
    <asp:DropDownList ID="sample" runat="server" AutoPostBack="true" OnSelectedIndexChanged="sample_selected"> 
     <asp:ListItem Value="0" Text="Sample0" /> 
     <asp:ListItem Value="1" Text="Sample1" /> 
     <asp:ListItem Value="2" Text="Sample2" /> 
    </asp:DropDownList> 
    <asp:Panel ID="pnlPopUp" runat="server"> 
     <table> 
      <tr> 
       <td> 
        <asp:Label ID="lblsample" runat="server" Text="Employee : " /> 
       </td> 
       <td> 
        <asp:DropDownList ID="ddlEmployees" runat="server" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="Label1" runat="server" Text="Penalty Nature : " /> 
       </td> 
       <td> 
        <asp:TextBox ID="tbxPenaltyNature" runat="server" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="Label2" runat="server" Text="Penalty Description : " /> 
       </td> 
       <td> 
        <asp:TextBox ID="tbxPenaltyDescription" runat="server" TextMode="MultiLine" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="Label3" runat="server" Text="Penalty Amount : " /> 
       </td> 
       <td> 
        <asp:TextBox ID="tbxPenaltyAmount" runat="server" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Button ID="btnClose" runat="server" Text="Close" /> 
       </td> 
       <td> 
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Clicked" /> 
       </td> 
      </tr> 
     </table> 
    </asp:Panel> 
    <asp:Label ID="lblDummy" runat="server" /> 
    <ajax:ModalPopupExtender ID="MP" runat="server" TargetControlID="lblDummy" PopupControlID="pnlPopUp" 
     CancelControlID="btnClose"> 
    </ajax:ModalPopupExtender> 
</asp:Content> 

protected void btnAddPenalty_Clicked(object sender, EventArgs e) 
    { 
     MP.Show(); 
    } 

我有此頁面上的母版頁,但我不能看到一個原因,這個代碼不觸發事件onclicked。我只想點擊和Imagebutton然後modalpopup(ajax控件)出現與某些領域填補,然後單擊提交併將其保存到數據庫,但onclicked事件不會觸發,並且頁面的page_load事件中的回發不是發射。

+1

請添加代碼 – 2011-12-16 04:59:45

回答

0

活動如下發佈者訂戶機制。控件/對象始終根據實現提升(觸發)事件。問題是一個handler是否附加。因此,如果您有興趣訂閱活動,那麼您必須附上event handlerevent

看看MSDN文章 - Raising an EventEvents (C# Programming Guide)

+0

另一個問題是有沒有辦法讓我檢查控制是否和事件處理程序..我使用的是經典的asp.net頁面。 – Rob 2011-12-20 09:32:04

0

確保已啓用自動裝配。如果不是,則不會觸發該事件。

0

可能的原因可能是您的JavaScript正在拋出錯誤。嘗試在你的Java腳本中的window.onerror函數,並使其顯示警報。所以,如果在那裏出現問題,你現在就可以了。

0

你沒有註冊該事件(無論是編程或聲明)? 你有AutoEventWireup =「false」嗎?

+0

不,autoeventwireup = true在我的頁面 – Rob 2011-12-16 05:05:50

相關問題