2013-08-17 120 views
2

附近作品我有這個UpdatePanel的Javascript不是的UpdatePanel

<asp:TextBox ID="date" runat="server" /> 

<asp:ScriptManager ID="Manager" runat="server" /> 
      <asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
       <ContentTemplate> 
         <asp:Label ID="checkRes" runat="server" />&nbsp;<asp:Label ID="range" runat="server" /> 

         <asp:ImageButton ID="check" runat="server" ImageUrl="../img/process.png" OnClick="check_Click" CausesValidation="false" UseSubmitBehavior="false"/> 

         <asp:Button ID="submit" runat="server" Text="Submit" CausesValidation="true" Enabled="false" /> 

        <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="setDate"> 
         <ProgressTemplate> 

          <asp:Image ID="loader" runat="server" ImageUrl="~/img/loader.gif" /> 
         </ProgressTemplate> 
        </asp:UpdateProgress> 
       </ContentTemplate> 

       <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="check" EventName="Click" /> 
       </Triggers> 
      </asp:UpdatePanel> 
<script type="text/javascript"> 
    var textBox = document.getElementById('<% =date.ClientID %>'); 
    var submitButton = document.getElementById('<% =submit.ClientID %>'); 
     textBox.onchange = function() { 
      submitButton.disabled = true; 
     }; 
</script> 

與此代碼背後:

你可以看到,第一Button被禁止,UpdatePanel後觸發其將被啓用。現在我想要如果date的文本變爲Button變爲禁用。我測試了我的JS here,但它並沒有在ASPX中禁用Button

+0

可能重複[是否有可能在UpdatePanel中重新執行JavaScript?](http://stackoverflow.com/questions/4400596/is-it-possible-to-re-execute-javascript-in-an -updatepanel) – BrunoLM

回答

1

回發之後,清除綁定與control.that是原因。

試試這個,

<asp:TextBox ID="date" runat="server" /> 
    <asp:ScriptManager ID="Manager" runat="server" /> 
    <script type="text/javascript"> 
     function pageLoaded() 
     { 
      var textBox = document.getElementById('<% =date.ClientID %>'); 
      var submitButton = document.getElementById('<% =submit.ClientID %>'); 
      textBox.onchange = function() 
      { 
       submitButton.disabled = true; 
      }; 
     } 


     var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_pageLoaded(pageLoaded); 
    </script> 
    <asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
     <ContentTemplate> 
      &nbsp;<asp:Label ID="checkRes" runat="server" />&nbsp;<asp:Label ID="range" runat="server" /><br /> 
      <asp:ImageButton ID="check" runat="server" ImageUrl="http://static.adzerk.net/Advertisers/d18eea9d28f3490b8dcbfa9e38f8336e.jpg" 
       OnClick="check_Click" CausesValidation="false" UseSubmitBehavior="false" /> 
      <br /> 
      <asp:Button ID="submit" runat="server" Text="Submit" CausesValidation="true" Enabled="false" /> 

      <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="setDate"> 
       <ProgressTemplate> 
        <asp:Image ID="loader" runat="server" ImageUrl="~/img/loader.gif" /> 
       </ProgressTemplate> 
      </asp:UpdateProgress> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="check" EventName="Click" /> 
     </Triggers> 
    </asp:UpdatePanel> 

你可以改變它,但腳本塊必須的ScriptManager後放置英寸