1
votes

I feel a bit stupid but I can't get my button to fire within my User Control. I have created the user control with the button and I have added the event handler in it's code behind. This user control reference is added to the parent and there is an instance of this user control on the parent page.

When I click the button it does a post back to the previous page. The breakpoint I have added doesn't get hit. It's probably something simple that I am not doing.

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>

The button that won't fire is 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"], );
    }

    }
2
Do you have some logic outside of the UserControl that's causing the postback to the previous page? And is it posting back to the previous page or redirecting to it? - Netricity
I guess most probably you are having some unrelated JS error, because of which ASP.NET is not able to make postback. - Guru Kara
@Netricity your comment helped me figure it out. Thanks! - nick gowdy

2 Answers

0
votes

try to call function with parenthesis"()".

0
votes

I was right about the answer probably being something obvious.

The default post-back behavior of the button was to a different URL. The application I am developing for must have some configuration somewhere because I have used asp.net buttons before and I haven't had to set the URL manually.

Thanks for the help.