-3

我想从后面的代码中保存(更新)一个表单。

我在编辑表单中有按钮

<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" style="color: #FF0000; font-size: medium; font-weight: 700" Text="Update" />

但在某些情况下,我想在触发更新按钮之前自动保存表单。

我怎样才能在后面的代码上做到这一点?

4

2 回答 2

0

但在某些情况下,我想在触发更新按钮之前自动保存表单。

您可以使用 JavaScriptintervaltimeout函数来实现计时器功能。

就个人而言,我会使用 jQuery 框架、AJAX 技术intervalserialize函数来实现。

将以下内容添加到页面中的head部分aspx(验证这form1是您的表单的 ID 或相应地更改它):

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script type="text-javascript">
            var result = self.setInterval(function(){
            var $frm = $('#form1');
            $.ajax({
                type: $frm.attr('method'),
                url: $frm.attr('action'),
                data:  $frm.serialize(),
                success: function (msg) {
                    alert("Success");
                }
            });
        }, 10000); // Post(update) your form each 10 seconds.
    </script>
于 2013-09-25T15:44:13.137 回答
0

您可以Timer在页面中添加一个以使 ASP 以固定的时间间隔进行回发。然后,您可以将事件处理程序附加到Tick事件并将表单保存在那里。

仅此一项就会导致每个时间间隔的整页回发;如果你想让保存是异步的,你可以把它包装起来Timer让它UpdatePanel做一个异步回发。UpdatePanel您还可以在以及或其他一些控件中有一个标签,以指示该表单已保存。

<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <asp:Timer runat="server" Interval="5000" ID="timer" />
        <asp:Label runat="server" ID="lblTimerResponse" />
    </ContentTemplate>
</asp:UpdatePanel>

然后在您的代码中,您需要的是:

timer.Tick += (s, _) =>
{
    SaveForm();
    lblTimerResponse.Text = "Form automatically saved";
};
于 2013-09-25T16:08:40.877 回答