我如何返回“a”;“已成功保存”;信息框和/或按“发送回执电子邮件”;“保存”;在Lightswitch HTML屏幕中?
我正在使用面向互联网的LightSwitchHTML“创建新数据”屏幕,让人们将求职申请数据提交到数据库中。当他们按下“保存”按钮时,数据会保存,但申请人无法判断他们的数据是否已保存。数据输入屏幕刚刚消失。是否有办法通过弹出消息框、发送电子邮件或同时发送这两种方式通知申请人其申请已收到?是的,一旦数据插入系统,就可以发送电子邮件。首先要做的是创建2个表(本例中我将使用SQL编写,但使用LightSwitch内置表也可以) 步骤1-创建控制电子邮件的数据表 步骤2-编辑服务器节点下的Web.config文件 在Web.config文件中的应用程序名称下面,在这两行下面添加以下代码(通常在第25-30行之间):我如何返回“a”;“已成功保存”;信息框和/或按“发送回执电子邮件”;“保存”;在Lightswitch HTML屏幕中?,html,visual-studio-lightswitch,Html,Visual Studio Lightswitch,我正在使用面向互联网的LightSwitchHTML“创建新数据”屏幕,让人们将求职申请数据提交到数据库中。当他们按下“保存”按钮时,数据会保存,但申请人无法判断他们的数据是否已保存。数据输入屏幕刚刚消失。是否有办法通过弹出消息框、发送电子邮件或同时发送这两种方式通知申请人其申请已收到?是的,一旦数据插入系统,就可以发送电子邮件。首先要做的是创建2个表(本例中我将使用SQL编写,但使用LightSwitch内置表也可以) 步骤1-创建控制电子邮件的数据表 步骤2-编辑服务器节点下的Web.con
<add key="ApplicationCulture" value="en-US" />
<add key="Microsoft.LightSwitch.DefaultClientName" value="HTMLClient" />
步骤4-将代码添加到消息表中(打开消息表,单击屏幕顶部的“写入代码”按钮,然后选择“插入的消息”
现在添加以下代码:
try
{
var EmailSetting = Settings.Where(x => x.SettingName == "SendEmails").FirstOrDefault();
if (EmailSetting != null)
{
if (EmailSetting.SettingValue.ToLower() == "true")
{
string strSubject = "MAIL HEADER";
string strMessage = String.Format("{0}",
"TEXT AT TOP OF EMAIL IF REQUIRED")
+ Environment.NewLine + Environment.NewLine;
strMessage = strMessage + String.Format("{0}",
entity.EmailMessage) + Environment.NewLine;
// Create the MailHelper class created in the Server project.
MailHelper mailHelper =
new MailHelper(
entity.NameFrom,
entity.EmailTo,
entity.NameTo,
strSubject,
strMessage);
// Send Email
mailHelper.SendMail();
}
else
{
}
}
else
{
}
}
catch (Exception ex)
{
}
并检查顶部是否有这些参考:
using System.Configuration;
using System.Net.Mail;
using LightSwitchApplication.DataSources.YOURDATASOURCE;
最后,将此代码添加到代码插入部分的表中,如上面的消息表
我在上面的代码中留下了错误信息,以显示如何格式化电子邮件和显示更多信息。我希望这能有所帮助:)如果有任何错误,请告诉我,我会帮助解决,这很可能是我错过的程序集参考
多一点
在添加屏幕上,如果使用JavaScript验证,请确保添加以下代码:
在屏幕上创建的事件中,添加此代码。这将禁用已激活的CTRL+S功能。(这在每个屏幕上都是必需的):
其次,将其添加到任何变量中(单击编辑渲染后代码)。此代码将隐藏默认的“保存”、“删除”和“取消”按钮,因此您的验证无法通过
$("[data-ls-tap='tap:{data.shell.discardCommand.command}']").hide();
$("[data-ls-tap='tap:{data.shell.saveCommand.command}']").hide();
$("[data-ls-tap='tap:{data.shell.okCommand.command}']").hide();
$("[data-ls-tap='tap:{data.shell.cancelCommand.command}']").hide();
此处邮件的原始代码(也可以下载示例项目):
你能不能从数据库中发出一条消息?插入查询你是在代码中使用Javascript还是在C#behind中执行某些部分?如果只是JavaScript,您可以在那里添加所有验证,并确保存在某些信息位。我会在下面加上一句:Crezzer7,我觉得这很有帮助。非常感谢。我已经成功地遵守了你的大部分指示。这里有一些问题:在步骤4的底部,您说要确保ThisUsing语句(以及其他语句)存在。使用LightSwitchApplication.DataSources.YOURDATASOURCE;YOURDATASOURCE应该是什么。在我的应用程序中,唯一可用的项目是应用程序数据。所以它是这样的:使用LightSwitchApplication.DataSources.ApplicationData;第二个问题是“最后”一步。您指示应将代码添加到“您的表”中。什么桌子是“你的桌子”。只是在“消息”表中插入了更多的代码吗?您对LightSwitchApplication.DataSources.YOURDATASOURCE的第一个注释。你认为它应该被应用是正确的。其次,你的表是指你想要从哪个表发送电子邮件,确认数据已经保存。例如,如果您有一个表staff,那么您可以将代码from finally添加到staff_Inserted代码块中,您可以像在步骤4中一样生成该代码块。我已经在底部粘贴了一个链接,这是我启动Crezzer7的地方,正如您在“Finally”中所指出的,在Messages_插入的代码中,ErrorID和Message出现了一些错误
try
{
var EmailSetting = Settings.Where(x => x.SettingName == "SendEmails").FirstOrDefault();
if (EmailSetting != null)
{
if (EmailSetting.SettingValue.ToLower() == "true")
{
string strSubject = "MAIL HEADER";
string strMessage = String.Format("{0}",
"TEXT AT TOP OF EMAIL IF REQUIRED")
+ Environment.NewLine + Environment.NewLine;
strMessage = strMessage + String.Format("{0}",
entity.EmailMessage) + Environment.NewLine;
// Create the MailHelper class created in the Server project.
MailHelper mailHelper =
new MailHelper(
entity.NameFrom,
entity.EmailTo,
entity.NameTo,
strSubject,
strMessage);
// Send Email
mailHelper.SendMail();
}
else
{
}
}
else
{
}
}
catch (Exception ex)
{
}
using System.Configuration;
using System.Net.Mail;
using LightSwitchApplication.DataSources.YOURDATASOURCE;
//email a save receipt to the person who added the data
Message objMessage = new Message();
objMessage.NameFrom = Convert.ToString(ConfigurationManager.AppSettings["SMTPSendingName"]);
objMessage.EmailFrom = Convert.ToString(ConfigurationManager.AppSettings["SMTPSendingEmailAddress"]);
objMessage.NameTo = "Details Successfully Saved"; //SUBJECT
objMessage.EmailTo = "emailto@email.com";
objMessage.EmailMessage =
string.Format("The Following User has successfully been Added: " +
"\nErrorID: " + entity.ErrorID +
"\nBy User: " + entity.StaffTable.Staffname +
"\nDate Reported:" + DateTime.Now.ToString(" dd.MM.yy") +
"\n\nError Details: " + entity.Message);
myapp.AddEditScreen.created = function (screen) {
$(window).one("pagechange", function (e, data) {
var $page = $("#" + screen.details._pageId);
var $button = $page.find(".msls-save-button");
$button.removeClass("msls-save-button");
});
};
$("[data-ls-tap='tap:{data.shell.discardCommand.command}']").hide();
$("[data-ls-tap='tap:{data.shell.saveCommand.command}']").hide();
$("[data-ls-tap='tap:{data.shell.okCommand.command}']").hide();
$("[data-ls-tap='tap:{data.shell.cancelCommand.command}']").hide();