2017-08-28 5 views
1

Hallo Ich hatte eine Schaltfläche auf der Website Ich entwickle das war gut, dann habe ich ein paar Styling und Bootstrap auf der Webseite gestern hinzugefügt und heute funktioniert es nicht. Die Logik sieht alles gut aus, also bin ich mir nicht sicher, was schief gehen könnte.Button plötzlich funktioniert nicht mehr

Ich habe einen Event-Handler in meinem page_load auf eine gültige Funktion zeigt, aber aus irgendeinem Grund die Funktion aufgerufen wird nicht, wenn ich auf den Button klicken:

protected void Page_Load(object sender, EventArgs e) 
{ 
    SendButton.Click += new EventHandler(SendButton_Click); 
    //Some other code I have left out for simplicity 
} 
public void SendButton_Click(Object sender, EventArgs e) 
{ 
    UserCredential sendingUser = (UserCredential)Session["authenticatedUser"]; 
    UserCredential receivingUser = Global.Users.Find(m => m.UserID == Convert.ToInt32(Session["receivinguserid"])); 
    Global.Users.Find(m => m.UserID == (int)sendingUser.UserID).Conversations.Find(t => t.ReceivingUserID == receivingUser.UserID).ReadMessageList.Add(new Message(MessageTextBox.Text, (int)sendingUser.UserID, DateTime.Now)); 
    Global.Users.Find(m => m.UserID == (int)receivingUser.UserID).Conversations.Find(t => t.ReceivingUserID == sendingUser.UserID).UnReadMessageList.Add(new Message(MessageTextBox.Text, (int)sendingUser.UserID, DateTime.Now)); 
    ChatLabel.Text += "<br>" + sendingUser.Name.ToString() + ": " + MessageTextBox.Text + " " + DateTime.Now.ToString("ddd, dd MMMM HH:mm"); 
    MessageTextBox.Text = String.Empty; 
} 

Und hier ist meine HTML-Seite, die SendButton wobei die ganzen Weg am Boden:

<form id="form1" runat="server"> 
    <div class="row"> 
     <div class="well center" style="width:50%"> 
      <a> 
      <asp:ScriptManager ID="ScriptManager1" runat="server"> 
      </asp:ScriptManager> 
       <asp:Timer ID="Timer1" runat="server"> 
       </asp:Timer> 
      </a> 
      <asp:UpdatePanel runat="server"> 
       <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="tim" EventName="Tick" /> 
       </Triggers> 
       <ContentTemplate> 
        <asp:Timer ID="tim" Interval="5000" Enabled="true" OnTick="UpdateChat" runat="server"></asp:Timer> 
        <asp:Label ID="ChatLabel" runat="server"></asp:Label> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
      <asp:TextBox ID="MessageTextBox" runat="server" Width="438px"></asp:TextBox> 
      <asp:Button ID="SendButton" runat="server" Text="Send" OnClientClick="return false"/> 
     </div> 
    </div> 
    </form> 
+0

Verwenden Sie F12 im IE und sehen Sie, ob Ihr DOM das gleiche wie zuvor ist, haben Sie nicht einige IDs oder Klassen geändert? – pix

+0

Warum verdrahten Sie den Ereignishandler in Ihrem Page_Load? Warum nicht deklarativ auf die Schaltfläche setzen? Und warum gibst du falsches 'OnClientClick' zurück? Scheint so, als würde das ein Postback verhindern. – mason

Antwort

2

entfernen oder zu löschen OnClientClick="return false" der Schaltfläche.

Wenn ein (clientseitiger) JavaScript-Button-Handler false zurückgibt, wird das gesamte Formular niemals übergeben, so dass Ihr serverseitiger Code niemals erreicht wird.

+0

Danke, ich kann mich nicht erinnern, dass ich das hinzugefügt habe, aber es funktioniert großartig – Articulate

Verwandte Themen