2013-03-14 40 views
1

我有下面的代碼在的UpdateProgress的.aspx文本框內直放站不做的UpdateProgress觸發

<asp:UpdatePanel ID="upnGrid" runat="server" UpdateMode="Conditional"> 
            <ContentTemplate> 
      <asp:Repeater ID="rpt1" runat="server" OnItemDataBound="rpt1_ItemDataBound"> 
       <ItemTemplate> 

        <table width="100%"> 
         <tr> 
          <td align="right" width="25%"> 
           <asp:Label ID="lbl1" Font-Bold="true" Font-Size="16px" Text=' <%# DataBinder.Eval(Container.DataItem,"Name") %>' 
            runat="server" /> 
          </td> 
          <td> 
           <asp:HiddenField ID="hdn1" Value='<%# DataBinder.Eval(Container.DataItem, "Length") %>' 
            runat="server" /> 
          </td> 
          <td> 
           <asp:TextBox ID="txt1" Font-Size="16px" Text='<%# DataBinder.Eval(Container.DataItem, "Value") %>' 
            AutoPostBack="true" Width="100px" OnTextChanged="txt1_TextChanged" runat="server" onkeydown="javascript:return OntxtEnter(event);"/> 
          </td> 
         </tr> 
        </table> 

       </ItemTemplate> 
      </asp:Repeater> 
      </ContentTemplate> 
            <%--<Triggers> 
              <asp:AsyncPostBackTrigger ControlID="rpt1"/> 
            </Triggers>--%> 
            </asp:UpdatePanel> 

代碼是在ASPX結束 -

<asp:Panel ID="UpdateProgressPanel" runat="server"> 
    <center> 
     <asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="upnGrid" 
      DynamicLayout="true"> 
      <ProgressTemplate> 
       <img src="../Images/loading.gif" alt=""> 
      </ProgressTemplate> 
     </asp:UpdateProgress> 
    </center> 
</asp:Panel> 
<ajaxtoolkit:modalpopupextender id="ModalProgress" runat="server" targetcontrolid="UpdateProgressPanel" 
    popupcontrolid="UpdateProgress2" dropshadow="false" backgroundcssclass="modalBackground"> 
</ajaxtoolkit:modalpopupextender> 

正如一些答案,我做了AsyncPostBackTrigger建議在代碼中註冊的背後,像 -

var control = e.Item.FindControl("txt1"); 
ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(control); 

我沒有得到,爲什麼它不工作。

請建議。

編輯

我試圖把只需要文本框的UpdatePanel的,它顯示以下錯誤

'System.Web.UI.Control' does not contain a definition for 'DataItem' and no extension method 'DataItem' accepting a first argument of type 'System.Web.UI.Control' could be found (are you missing a using directive or an assembly reference?) 

回答

0

嘗試修改您的UpdateProgress控制,如下圖所示:

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> 
    <ProgressTemplate> 
     <asp:Panel ID="Panel1" runat="server"> 
        <asp:Panel ID="Panel2" runat="server"> 
         <asp:ImageButton ID="ibProgress" runat="server" ImageUrl="~/Images/progress.gif" 
          Visible="true" />Loading... 
        </asp:Panel> 
     </asp:Panel> 
    </ProgressTemplate> 
</asp:UpdateProgress> 
+0

感謝您的回覆,但它與其他網頁正常工作,我不認爲這是必需的解決方案。 – user2039445 2013-03-14 10:12:18

0

你不能以這種方式使用它。因爲在中繼器中TextBox ID是不同的。你必須遵循不同的機制。

+0

那就是爲什麼我在代碼中註冊AsyncPostBack。這應該以這種方式工作。 – user2039445 2013-03-14 10:17:06