AJAX触发与TextBox控件

AJAX触发与TextBox控件

问题描述:

当我把在用的UpdatePanel ID“UpdatePanel2”中的“触发器”,“文本框”控件ID为“MessageTextBox”,这个“文本框” ID为“MessageTextBox”不希望通过AJAX回发。 ID为“MessageButton”的“Button”控件工作正常,但是这个TextBox不想工作。为什么?AJAX触发与TextBox控件

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
    <br /> 

     <asp:TextBox ID="MessageTextBox" runat="server" AutoPostBack="true" Height="150px" Width="400px"></asp:TextBox> 

    <br />  
     <asp:Button ID="MessageButton" runat="server" Text="Send" OnClick="MessageButton_Click" /> 
    <br /> 
    <br /> 
    <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="MessageButton" /> 
      <asp:AsyncPostBackTrigger ControlID="MessageTextBox" /> 
     </Triggers> 
     <ContentTemplate> 
      <asp:DataList ID="ChatDataList" runat="server" > 
     <HeaderTemplate> 
      <table style="border:1px solid red"> 
     </HeaderTemplate> 
     <ItemTemplate> 
       <tr> 
        <td><asp:Label ID="lblRaterName" runat="server" Text='<%#  Eval("Text")%>'></asp:Label></td> 
       </tr> 
     </ItemTemplate>     
     <FooterTemplate> 
      </table> 
     </FooterTemplate> 
    </asp:DataList> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

当我把这个包起来“文本框”控制所有类似的工作,但我更喜欢使用触发器的其他方式(这不工作像上面的代码的方式):

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:TextBox ID="MessageTextBox" runat="server" Height="150px" Width="400px"></asp:TextBox> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

你应该在你AsyncPostBackTrigger指定EventName

<asp:AsyncPostBackTrigger ControlID="MessageTextBox" EventName="TextChanged" /> 

文本框将触发回传当焦点丢失时。

或者,您也可以在Page_Load注册使用ScriptManager.RegisterAsyncPostBackControl方法您的文本框:

ScriptManager1.RegisterAsyncPostBackControl(MessageTextBox); 

或者你甚至可以使用脚本强制更新面板回发:

<script type="text/javascript"> 
     function refreshUpdatePanel() { 
      __doPostBack('<%= UpdatePanel2.UniqueID %>', ''); 
     } 
</script> 
<asp:TextBox ID="MessageTextBox" runat="server" AutoPostBack="true" Height="150px" Width="400px" onblur="javascript:refreshUpdatePanel()"></asp:TextBox> 
+0

我试过,但没有奏效。 – TheChampp 2013-02-09 14:55:04