1

我在 .aspx 中有以下代码

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

UpdateProgress 的代码位于 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?)
4

2 回答 2

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>
于 2013-03-14T10:08:22.593 回答
0

你不能以这种方式使用它。因为中继器内部的文本框 ID 是不同的。你必须遵循不同的机制。

于 2013-03-14T10:15:08.100 回答