在后面的代码上保存表单

时间:2013-09-25 15:15:50

标签: c# updates

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

我在编辑表格中有一个按钮

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

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

如何在代码后面执行此操作?

2 个答案:

答案 0 :(得分:0)

  

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

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

就个人而言,我会使用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>

答案 1 :(得分: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";
};