摘要:C# Gridview 全選/反選 搭配EMail
前面:
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="CheckAll" runat="server" onclick="javascript: SelectAllCheckboxes(this);"
Text="全選" ToolTip="按一次全選,再按一次取消全選" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
grd下面 :
<script type="text/javascript">
function SelectAllCheckboxes(oCheckbox) {
var GridView1 = document.getElementById("<%=grdQM.ClientID %>");
// alert(GridView1.rows[2].cells[0].innerHTML)
for (i = 1; i < GridView1.rows.length; i++) {
if ($.trim(GridView1.rows[i].cells[0].innerHTML) == null || $.trim(GridView1.rows[i].cells[0].innerHTML) == "") {
} else {
GridView1.rows[i].cells[0].getElementsByTagName("INPUT")[0].checked = oCheckbox.checked;
}
}
}
</script>
後台:
protected void btnSend_Click(object sender, EventArgs e)
{
List<string> lis = new List<string>();
lis.Clear();
int i;
for (i = 0; i < this.grdQM.Rows.Count; i++)
{
if (((CheckBox)grdQM.Rows[i].FindControl("CheckBox1")).Checked)
{
lis.Add(grdQM.DataKeys[i].Value.ToString().Trim());
//GridView1.DataKeys[i].Value.ToString() 可以抓到該列的DataKeys的值,我設定的是pk值
}
}
if (lis.Count > 0)
{
try
{
SendEmail(lis);
AlertMessage.ShowMessage(this, UpdatePanel1, "通知信件已寄出!");
}
catch( Exception ex)
{
AlertMessage.ShowMessage(this, UpdatePanel1, "通知信件失敗!");
}
}
else
{
AlertMessage.ShowMessage(this, UpdatePanel1, "無勾選任何選項!");
}
}
/// <summary>
/// EMAIL內容
/// </summary>
/// <param name="list"></param>
private void SendEmail(List<string> list)
{
// ReSetKey ReKey = new ReSetKey();//解密(和CSCLable解出一樣)
foreach (string QMID in list)
{
StuDMVO myvo = new StuDMVO();
string str = "";
if (QMID.Trim().Length == 16)
{
myvo = QueryStu(QMID.Trim().Substring(0, 14));
str= QueryCerType(QMID.Trim().Substring(14, 2));
}
Mail mail = new Mail();
mail.SendFrom = "\"管理系統\" <" + System.Configuration.ConfigurationManager.AppSettings["SendFrom"] + ">";
mail.Subject = "主旨";
mail.Body = "親愛的 " + myvo.Stu_Cname.Trim() + " 您好:<br>您在...內容 <HTML>。 ";
mail.SendToList = myvo.Stu_Email.Trim();
mail.BCCList = ""; //附件
mail.SendMail();
}
}
/// <summary>
/// Checkbox開合
/// </summary>
public void OpenCheckBox()
{
for (int i = 0; i < this.grdQM.Rows.Count; i++)
{
if (((Label)grdQM.Rows[i].FindControl("Label7")).Text.Trim() == "開合的條件")
{
grdQM.Rows[i].FindControl("CheckBox1").Visible = true;
}
else
{
grdQM.Rows[i].FindControl("CheckBox1").Visible = false;
}
}
}