2014-09-29 28 views
0

我有一個gridview其中我有一個列名「選擇」。我希望當管理員選擇「未選擇」選項時,相應用戶應該收到關於他的ID的電子郵件,表示他已被拒絕。請參閱gridview代碼,供大家參考:在下拉菜單中選擇發送郵件給各自的用戶

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowPaging="true" Width="920" 
PageSize="5" OnPageIndexChanging="gv_Applicants_PageIndexChanging" OnRowCommand="gv_Applicants_RowCommand" 
EmptyDataText="No Applicants Found." 
AllowSorting="true" 
OnSorting="gv_Applicants_Sorting" 
OnRowDataBound="gv_Applicants_RowDataBound" RowStyle-CssClass="a12" AlternatingRowStyle-CssClass="a22" ForeColor="#333333" GridLines="None" CssClass="table_box" HeaderStyle-Height="35px"> 
<AlternatingRowStyle BackColor="#F0F0F0" /> 
<Columns> 
    <asp:BoundField DataField="FirstName" HeaderText="First Name" HeaderStyle-Width="84" /> 
    <asp:BoundField DataField="LastName" HeaderText="Last Name" HeaderStyle-Width="106" /> 
    <asp:BoundField DataField="ContactNumber" HeaderText="Contact" HeaderStyle-Width="98" /> 
    <asp:BoundField DataField="Email" HeaderText="Email" HeaderStyle-Width="150" /> 

    <asp:TemplateField HeaderText="Position" SortExpression="Position" HeaderStyle-Width="107"> 
     <ItemTemplate> 
      <%# Eval("Job.Position") %> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="Location" SortExpression="Location" HeaderStyle-Width="100"> 
     <ItemTemplate> 
      <%# Eval("Job.Location") %> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField DataField="AppliedDate" DataFormatString="{0:MMMM dd, yyyy}" HeaderText="Date of Application" ReadOnly="true" HeaderStyle-Width="121" /> 

    <asp:TemplateField HeaderText="Action" HeaderStyle-HorizontalAlign="Center"> 
     <ItemTemplate> 
      <asp:LinkButton ID='lnkView' CommandName='v' Text='View' runat='server' CommandArgument='<%# Eval("ApplicantId") %>'></asp:LinkButton> 
      | 
         <asp:LinkButton ID='lnkdel' CommandName='d' Text='Delete' runat='server' CommandArgument='<%# Eval("ApplicantId") %>' OnClientClick="return confirm('Are you sure to delete?');"></asp:LinkButton> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="Selection"> 
     <ItemTemplate> 
      <asp:Label ID="lblCountry" runat="server" Visible="true" /> 
      <asp:DropDownList ID="ddlCountries" runat="server"> 
       <asp:ListItem Text="None" Value="1"></asp:ListItem> 
       <asp:ListItem Text="Selected" Value="2"></asp:ListItem> 
       <asp:ListItem Text="Not Selected" Value="3"></asp:ListItem> 
      </asp:DropDownList> 
     </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 


<EditRowStyle BackColor="#2461BF" /> 
<FooterStyle BackColor="#D8DADA" Font-Bold="True" /> 
<HeaderStyle BackColor="#D8DADA" Font-Bold="True" /> 
<PagerStyle BackColor="#D8DADA" HorizontalAlign="Center" /> 
<RowStyle BackColor="white" BorderStyle="Solid" BorderColor="#a8a8a8" BorderWidth="1px" Height="35" /> 
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 

Eidted代碼: -

private void SendMail() 
{ 
    StringBuilder sbuilder = new StringBuilder(); 
    sbuilder.Append("<div>"); 
    sbuilder.Append("<p>Thanks for applying at RBL. You have been rejected</p>"); 
    sbuilder.Append("</div>"); 

    string str = sbuilder.ToString(); 
    string ccEmail = ""; 
    Common objCom = new Common(); 
    string toId = ConfigurationManager.AppSettings["ddlEmail"].ToString(); 
    objCom.SendEMail(toId, "Rejection Mail", sbuilder.ToString(), ccEmail, false, ""); 
} 


protected void ddlSelection_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddl = (DropDownList)sender; 
    GridViewRow row = (GridViewRow)ddl.Parent.Parent; 


    if (ddl.SelectedValue == "Not Selected") 
    { 
     SendMail(); 
    } 
} 
+0

@MairajAhmad:我在這裏試過,但下拉選擇它不起作用,http://stackoverflow.com/questions/12240966/i-need-to-create-a-button-that-sends-form-information-to -email上按鈕點擊-E。 我只需要選擇代碼就可以了,發送郵件很常見我可以做到這一點 – BNN 2014-09-29 12:07:24

+0

看到我的代碼,我試過了。但郵件不會。 – BNN 2014-09-29 12:33:38

+0

所以你會得到任何錯誤異常或什麼都沒有發生? – Mairaj 2014-09-29 12:34:47

回答

0

試試這個,

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 

    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     DropDownList ddl = e.Row.FindControl("ddlCountries") as DropDownList; 
    if(ddl != null) 
    { 
     ddl.SelectedIndexChanged += new EventHandler(ddlCountries_SelectedIndexChanged); 
    } 
    } 

} 

protected void ddlCountries_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string selectedValue = ((DropDownList)sender).SelectedValue; 
    if(selectedValue== "Not Selected") 
    { 
     // Write code here for sending mail 
    } 

} 
+0

我怎麼能在後面的代碼中調用boundfield? 請參閱: BNN 2014-09-29 12:55:09

+1

嘗試此字符串email = GridView1.SelectedRow.Cells [「Email」] .Text;或電子郵件= e.row.cells [「電子郵件」]。 。我沒有測試。 – Banana 2014-09-29 13:10:48

+0

是的,試過了,它的工作..謝謝。像魅力一樣工作:) – BNN 2014-09-29 13:16:58