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

このような使い方はできません。リピーター内では TextBox ID が異なるため、別のメカニズムに従う必要があります。

于 2013-03-14T10:15:08.100 に答える