J'ai une page avec plusieurs DropDownLists générées dynamiquement. Les DDs se chargent et affichent les valeurs correctes au chargement de la page. Cependant, lorsque j'essaie de récupérer les valeurs à la publication, les DD semblent tous maintenir les valeurs qu'ils avaient au chargement de la page.Publication ne conservant pas les valeurs sélectionnées
Tous sont créés dans Page_Load; Aucun test pour IsPostBack; Le traitement est effectué dans le code ci-dessous:
void btnSubmit_Click(object sender, EventArgs e)
{
System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath("\\") + "\\Logs\\Permissions.log",false);
string szMask = hMask.Value.ToString();
sw.WriteLine("\t\t\t\t\t\t\t" + szMask);
foreach (Control c in Page.Controls)
LoopControls(c, szMask, sw);
sw.Close();
}
private void LoopControls(Control Page, string szMask, System.IO.StreamWriter sw)
{
foreach (Control c in Page.Controls)
{
if (c is DropDownList)
{
string szId = c.ID;
if (szId.StartsWith("ddlPerm"))
{
string[] szSplit = szId.Split(':');
int iMaskPosition = Convert.ToInt32(szSplit[1].ToString());
int iSecurityPermissionID = Convert.ToInt32(szSplit[2].ToString());
DropDownList dd = (DropDownList)c;
string szPermission = dd.SelectedValue.ToString();
if (szMask.Substring(iMaskPosition, 1) != szPermission)
{
sw.WriteLine("NE");
if (iMaskPosition == 0)
szMask = szPermission + szMask.Substring(1);
else
szMask = szMask.Substring(0, iMaskPosition) + szPermission + szMask.Substring(iMaskPosition);
}
sw.WriteLine(szId + "\t\t" + iMaskPosition.ToString() + "\t" + iSecurityPermissionID.ToString() + "\t" + szPermission + "\t\t" + szMask);
}
}
else
{
if (c.Controls.Count > 0)
{
LoopControls(c, szMask, sw);
}
}
}
}
Cela m'a vraiment mise sur écoute. Toute aide serait grandement appréciée.
Merci, jb