单击插入按钮时尝试从详细信息发送电子邮件视图

时间:2015-07-30 21:54:50

标签: c# asp.net outlook-2010 detailsview

我正在处理工作订单管理Web应用程序,用户在该应用程序中创建工作订单。要创建工作单我正在使用详细信息视图并将其显示给主管我正在使用gridview。

我有一个下拉列表字段:

       <asp:TemplateField HeaderText="Type_of_Work_Order" 
                        SortExpression="Type_of_Work_Order">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" 
                                Text='<%# Bind("Type_of_Work_Order") %>'></asp:TextBox>
                        </EditItemTemplate>
     <InsertItemTemplate>
        <asp:DropDownList ID="DropDownList1" DataTextField="Type_of_Work_Order" 
        DataValueField="Type_of_Work_Order" runat="server" Height="29px" Width="599px" 
          SelectedValue = '<%# Bind("Type_of_Work_Order") %>' 
                                onselectedindexchanged="DropDownList1_SelectedIndexChanged">
                                <asp:ListItem>Safety</asp:ListItem>
                                <asp:ListItem>Quality</asp:ListItem>
                                <asp:ListItem>General</asp:ListItem>

  </asp:DropDownList>
 </InsertItemTemplate>

当用户输入所有信息并单击插入按钮时,数据将插入到数据库中,但插入按钮是详细信息视图的一部分,但新用户要求是在下拉列表中选择值并单击时在插入按钮我想也能够向所有人发送电子邮件,但插入按钮没有button_click事件

一旦我弄清楚如何为插入启动button_click事件,我计划执行以下操作

if (DropDownList1.Text == Type of Work Order Selected By the User)
{
// Create a Outlook Application and connect to outlook 
Application OutlookApplication = new Application();

// create the MailItem which we want to send 
MailItem email = (MailItem)OutlookApplication.CreateItem(OlItemType.olMailItem);
 // Add a recipient for the email
email.Recipients.Add("**PEOPLE UNDER THE TYPE OF WORK ORDER GROUP**");
 // add subject and body of the email
email.Subject = "Test";
email.Body = "This is a test email to check outlook email sending code";

// add display name, position and attach type for the attachment
string DisplayName = "MyAttachment";
int iPosition = email.Body.Length + 1;
int AttachType = (int)OlAttachmentType.olByValue;
 //now attached the file
Attachment Attach = email.Attachments.Add("C:\\test.txt", AttachType, iPosition, DisplayName);

//send email
email.Send();
}

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定Office在此环境中运行时的行为和/或死锁。

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。

相反,您可以考虑使用System.Net.Mail命名空间或Outlook所基于的低级API - 扩展MAPI。如果您只处理Exchange,请参阅EWS,EWS Managed API, EWS, and web services in Exchange