2013-04-30 86 views
1

我覺得有點愚蠢,但我無法讓我的按鈕在我的用戶控件中觸發。我使用按鈕創建了用戶控件,並且在後面的代碼中添加了事件處理程序。此用戶控件引用已添加到父級,並且父級頁面上有此用戶控件的一個實例。用戶控件按鈕事件沒有觸發

當我點擊按鈕後,它會回傳到上一頁。我添加的斷點不會受到影響。這可能很簡單,我不做。

ASCX

<h2>Notes</h2> 

    <div id="divNoteForm"> 
     <h2>Create a new note</h2> 
     <br /> 
     <table> 
      <tr> 
       <td> 
        <asp:Label ID="lblTitle" runat="server" Text="Title"></asp:Label> 
       </td> 
       <td> 
        <asp:TextBox ID="txtTitle" runat="server"></asp:TextBox> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="lblNoteText" runat="server" Text="Note"></asp:Label> 
       </td> 
       <td> 
        <asp:TextBox ID="txtNoteText" runat="server" Width="300" Rows="2"></asp:TextBox> 
       </td> 
      </tr> 
      <tr> 
       <td> 

        <asp:Button ID="btnSubmit" runat="server" Text="Submit note" OnClick="btnSubmit_Click"/> 
       </td> 
      </tr> 
     </table> 
    </div> 

    <div id="divNoteGrid"> 
     <h2>Note Grid</h2> 
     <br /> 
     <table> 
      <tr> 
       <td>Date</td> 
       <td>Title</td> 
       <td>Description</td> 
      </tr> 
       <tr> 
       <td>22/04/2013</td> 
       <td>BSB</td> 
       <td>Phoned Amy Rowcliffe on 22/04/2013</td> 
       <td><u>Edit</u></td> 
        <td><u>Delete</u></td> 
      </tr> 
     </table> 
     </div> 


     <input type="radio" id="rdoForm" name="rdoNotes" style="width:10px" onchange="rdoChange(this)" value="Form" checked="checked">Show new note 
    <input type="radio" id="rdoGrid" name="rdoNotes" style="width:10px" onchange="rdoChange(this)" value="Grid">Show existing notes 
</div> 

<div id="NotesBtnForm" style="width: 500px; height: 40px; position: fixed; top: 0px; left:37%; border-style:solid; border-width:thin; z-index:10000; opacity:1.0; background-color:white" > 
    <asp:Button runat="server" ID="btnNotes" Text="Notes: 5" OnClientClick="showNotes();return false;" /> 
</div> 

按鈕不會火btnSubmit按鈕。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Model.Company; 
using Business; 

public partial class WebControls_DataWebControls_NotesControl : System.Web.UI.UserControl 
{ 

    CompanyNotesFactory companyNotesFormatter = new CompanyNotesFactory(); 
    List<CompanyNotesModel> results = new List<CompanyNotesModel>(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    public int NumToDisplay { get; set; } 
    public string Notes { get; set; } 
    protected string AdditionalInfo { get; private set; } 

    //public override void DataBind() 
    //{ 
    // // Process the data we have been passed 
    // ProcessNotes(Notes); 
    // base.DataBind(); 
    //} 

    public int NumNotes 
    { 
     get 
     { 
      return results.Count; 
     } 
    } 

    //private void ProcessNotes(string Notes) 
    //{ 
    // if (string.IsNullOrEmpty(Notes)) 
    // { 
    //  AdditionalInfo = "No Additional Information Available"; 
    //  return; 
    // } 

    // results = companyNotesFormatter.GetCompanyNotes(Notes); 

    // if (NumToDisplay == 0) 
    //  rptNotes.DataSource = results; 
    // else 
    //  rptNotes.DataSource = results.Take(NumToDisplay); 

    // AdditionalInfo = companyNotesFormatter.NotesLeadingText; 

    // rptNotes.DataBind(); 

    //} public void Add(string notesTitle, string notesText, Guid userID, int relatedID, string relatedType) 

    //public event EventHandler btnSubmit_Click; 

    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     string test = Request["userid"]; 


     //Business.Core.Note.Add(txtTitle.Text, txtNoteText.Text, Request["userid"],); 
    } 

    } 
+1

您是否在UserControl之外有一些導致回傳到上一頁的邏輯?它是否回到上一頁或重定向到它? – Netricity 2013-04-30 09:55:15

+0

我想你最有可能有一些無關的JS錯誤,因爲ASP.NET無法進行回發。 – 2013-04-30 10:06:42

+0

@Intricity您的評論幫我弄明白了。謝謝! – 2013-04-30 11:02:49

回答

0

嘗試使用圓括號「()」調用函數。

+1

這樣做會給我一個運行時錯誤。如果將onclick事件處理程序添加到設計器中的按鈕,則不應該有括號。你正在考慮一個JavaScript onclientclick這確實需要括號。 – 2013-04-30 09:20:31

0

我說得對,答案可能很明顯。

該按鈕的默認回傳行爲是到不同的URL。我正在開發的應用程序必須有一些配置,因爲我以前使用過asp.net按鈕,而且我不必手動設置URL。

感謝您的幫助。

相關問題