我想从代码后面保存(更新)表单。
我在编辑表格中有一个按钮
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" style="color: #FF0000; font-size: medium; font-weight: 700" Text="Update" />
但在某些情况下我想在触发更新按钮之前自动保存表单。
如何在代码后面执行此操作?
答案 0 :(得分:0)
但在某些情况下我想在开始之前自动保存表单 更新按钮。
您可以使用JavaScript interval
或timeout
函数来实现计时器功能。
就个人而言,我会使用jQuery框架,AJAX技术,interval
和serialize
函数来完成。
将以下内容添加到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";
};