我如何返回“a”;“已成功保存”;信息框和/或按“发送回执电子邮件”;“保存”;在Lightswitch HTML屏幕中?

我如何返回“a”;“已成功保存”;信息框和/或按“发送回执电子邮件”;“保存”;在Lightswitch HTML屏幕中?,html,visual-studio-lightswitch,Html,Visual Studio Lightswitch,我正在使用面向互联网的LightSwitchHTML“创建新数据”屏幕,让人们将求职申请数据提交到数据库中。当他们按下“保存”按钮时,数据会保存,但申请人无法判断他们的数据是否已保存。数据输入屏幕刚刚消失。是否有办法通过弹出消息框、发送电子邮件或同时发送这两种方式通知申请人其申请已收到?是的,一旦数据插入系统,就可以发送电子邮件。首先要做的是创建2个表(本例中我将使用SQL编写,但使用LightSwitch内置表也可以) 步骤1-创建控制电子邮件的数据表 步骤2-编辑服务器节点下的Web.con

我正在使用面向互联网的LightSwitchHTML“创建新数据”屏幕,让人们将求职申请数据提交到数据库中。当他们按下“保存”按钮时,数据会保存,但申请人无法判断他们的数据是否已保存。数据输入屏幕刚刚消失。是否有办法通过弹出消息框、发送电子邮件或同时发送这两种方式通知申请人其申请已收到?

是的,一旦数据插入系统,就可以发送电子邮件。首先要做的是创建2个表(本例中我将使用SQL编写,但使用LightSwitch内置表也可以)

步骤1-创建控制电子邮件的数据表

步骤2-编辑服务器节点下的Web.config文件

在Web.config文件中的应用程序名称下面,在这两行下面添加以下代码(通常在第25-30行之间):

<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();