In meinem Codebehind habe ich eine Checkbox-Liste aus SQL DB in meinem Page Load-Ereignis erstellt und in meinem Button_Click-Event alle Get-Werte aus der Checkbox-Liste usw. erstellt.
Als ich also einige Kontrollkästchen aktiviert und dann auf meine Schaltfläche geklickt habe, war das erste, was passiert ist, dass mein page_load-Ereignis die Checkbox-Liste neu erstellt hat, sodass beim Ausführen meiner get checkbox-Werte keine Kontrollkästchen aktiviert wurden ... Ich habe es versäumt, das page_load-Ereignis hinzuzufügen das if (! this.IsPostBack)
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SqlConnection dbConn = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);
string query;
try
{
query = "SELECT [name], [mail] FROM [users]";
dbConn.Open();
SqlDataAdapter da = new SqlDataAdapter(query, dbConn);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count != 0)
{
checkboxlist1.DataSource = ds;
checkboxlist1.DataTextField = "name";
checkboxlist1.DataValueField = "mail";
checkboxlist1.DataBind();
}
else
{
Response.Write("No Results found");
}
}
catch (Exception ex)
{
Response.Write("<br>" + ex);
}
finally
{
dbConn.Close();
}
}
}
protected void btnSend_Click(object sender, EventArgs e)
{
string strChkBox = string.Empty;
foreach (ListItem li in checkboxlist1.Value)
{
if (li.Selected == true)
{
strChkBox += li.Value + "; ";
}
}
Response.Write(strChkBox);
}
Und die Ausgabe war wie erwartet eine durch Semikolons getrennte Liste, die ich in einer Mail-End-Funktion verwenden konnte:
bill@contoso.com; jeff@corp.inc; sam@dot.net
Eine lange Antwort auf ein kleines Problem. Bitte beachten Sie, dass ich in diesem Bereich kein Experte bin und weiß, dass es bessere Lösungen als diese gibt, aber es könnte für einige hilfreich sein.