2017-08-28 9 views
1

こんにちは私は開発中のウェブサイトにボタンがありました。その後、昨日ウェブページにスタイリングとブートストラップを追加しました。論理はすべてうまく見えるので、何がうまくいかないのか分かりません。ボタンが突然動作を停止しました

私は有効な関数を指して、私のPage_Loadでのイベントハンドラを持っていますが、私はボタンをクリックしたときに関数が呼び出されていない何らかの理由:

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; 
} 

そして、ここに私のhtmlページ、SendButtonがあります

<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

IEでF12を使用し、DOMが以前と同じかどうかを確認してください。一部のIDまたはクラスを変更していませんか? – pix

+0

なぜPage_Loadにイベントハンドラを配線していますか?ボタンに宣言的に設定してみませんか?なぜあなたはfalseのOnClientClickを返すのですか?ポストバックを防ぐような感じです。 – mason

答えて

2

ボタンのOnClientClick="return false"を削除またはオフにします。

(クライアント側)javascriptボタンハンドラがfalseを返した場合、フォーム全体が送信されることはないため、サーバーサイドコードには決して到達しません。

+0

ありがとう、私はそれを追加覚えていないが、それは素晴らしい作品 – Articulate

関連する問題