将表单保存在代码隐藏中
本文关键字:隐藏 代码 存在 表单 保存 | 更新日期: 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 interval
或 timeout
函数来实现计时器功能。
就个人而言,我会使用 jQuery 框架、AJAX 技术、interval
和 serialize
函数来做到这一点。
将以下内容添加到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>