2017-03-23 33 views
1

現在、データベースから取得しており、2つのラベルに正しい情報が表示されています。しかし、私はこれらのラベルを背後のコードで使用したいと思いますが、私には表示されません。私がこれを裏のコードで必要とする理由は、受信者の電子メールに電子メールアドレスを挿入できるからです。以下はアイテムテンプレート内のラベルからテキストを取得

項目テンプレートとSQLデータソースの下

<asp:SqlDataSource ID="userCourse" runat="server" ConnectionString='<%$ ConnectionStrings:ConnectionString %>' SelectCommand="SELECT DISTINCT tblCourse.courseTitle, tblCourse.advisorOfStudiesID, tblPersonalInfo.firstName, tblPersonalInfo.lastName, tblPersonalInfo.email FROM tblCourse INNER JOIN tblAdvisorOfStudies ON tblCourse.advisorOfStudiesID = tblAdvisorOfStudies.advisorOfStudiesID INNER JOIN tblUsers ON tblAdvisorOfStudies.userID = tblUsers.userID INNER JOIN tblPersonalInfo ON tblUsers.personalInfoID = tblPersonalInfo.personalInfoID WHERE (tblCourse.courseID = @userID)"> 
    <SelectParameters> 
     <asp:SessionParameter SessionField="userID" Name="userID"></asp:SessionParameter> 
    </SelectParameters> 
</asp:SqlDataSource> 
<asp:ListView ID="ListView1" runat="server" DataSourceID="userCourse"> 
    <ItemTemplate> 
     <asp:Label ID="aosemail" runat="server" Text='<%# Eval("email") %>' /> 
     <asp:Label ID="aosname" hidden runat="server" Text='<%# Eval("firstName") %>' /> 
    </ItemTemplate> 
</asp:ListView>  

を示すフロントエンドは、私は、ラベルのテキストを事前に

private bool SendEmail() 
{ 
    string recipient = aosemail; //AOS Email textbox should go here 
    MailMessage mm = new MailMessage("[email protected]gmail.com", recipient); 
    mm.Subject = "Student has chosen Manual Enrollment Process!"; 
    //AOS name textbox will be here 
    mm.Body = "Hi " + aosename+ "<br><br>This is a quick email to inform you that " + Name.Text.ToString() + " has chosen the manual enrollment process. The reason we are emailing you is that you are their Advisor of Studies. Please email the user on " + Email.Text.ToString() + " <br><br>Regards"; 
    mm.IsBodyHtml = true; 
    SmtpClient smtp = new SmtpClient(); 
    smtp.Host = "smtp.gmail.com"; 
    smtp.EnableSsl = true; 
    NetworkCredential NetworkCred = new NetworkCredential(); 
    NetworkCred.UserName = "*************"; 
    NetworkCred.Password = "*********"; 
    smtp.UseDefaultCredentials = true; 
    smtp.Credentials = NetworkCred; 
    smtp.Port = 587; 
    smtp.Send(mm); 
    return true; 
} 

おかげ

+0

「コードの背後にあるラベル」とはどういう意味ですか? –

+0

'string recipient = aosemail;'あなたは 'aosemail.Text'を使っていますか? – Nathangrad

+0

@TamasRevラベルがフロントエンド.aspxにあるので、背後のコードでラベルのテキストを取得できるようにしたいが、それを.aspx.csファイル内でItem Templateの内部に呼び出すことができない – Ryan

答えて

0
を取得したいの背後にあるコードであります

FindContolを使用して、ListView内のラベルを検索する必要があります。また、配列のようにインデックスを使用する必要があるため、複数のインデックスが必要な場合があります。

int index = 0; 

Label aosemail = ListView1.Items[index].FindControl("aosemail") as Label; 
Label aosname = ListView1.Items[index].FindControl("aosname") as Label; 

string body = "Hi " + aosname.Text + "<br><br>" + aosemail.Text; 
+0

ありがとうございます!私は昨夜、これに約4時間拘束されていました。 – Ryan

関連する問題