将表单保存在代码隐藏中

本文关键字:隐藏 代码 存在 表单 保存 | 更新日期: 2023-09-27 18:32:43

我想从代码隐藏中保存(更新)表单。

我在编辑表格中有屁股

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

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

如何在代码隐藏上执行此操作?

将表单保存在代码隐藏中

可以向页面添加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";
};

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

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

就个人而言,我会使用 jQuery 框架、AJAX 技术、intervalserialize 函数来做到这一点。

将以下内容添加到aspx页面的head部分(验证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>