OVH Cloud OVH Cloud

generation formulaire

1 réponse
Avatar
guinness57
bonjour

j'ai une classe dont une methode genere un formulaire alimenté avec
les données de mon objet.

public string DisplayFormEmp(DbClass myConnect, Content labels)
{
string strReturn = "";
strReturn += "<table><tr><td>" + labels.Get("Diploma", "Diploma") +
"</td><td>" + myConnect.SqlDropDown("p_dip_id","SELECT DIP_ID,
DIP_DESC FROM T_DIPLOMA" ,this.dipId.ToString(),"DIP_ID","DIP_DESC",
"true") + "</td></tr>";
strReturn += "<tr><td>" + labels.Get("WorkDealer", "Work Dealer") +
"</td><td>" + myConnect.SqlDropDown("p_dealer_work","SELECT
D.DC09_DEALER, CIE_NAME FROM T_DEALER D, T_COMPANY C WHERE C.CIE_ID =
D.CIE_ID" ,this.dealerWork.ToString(),"DC09_DEALER","CIE_NAME",
"true") + "</td><td>" + labels.Get("EmpDealer", "Employee Dealer") +
"</td><td>" + myConnect.SqlDropDown("p_dealer_emp","SELECT
D.DC09_DEALER, CIE_NAME FROM T_DEALER D, T_COMPANY C WHERE C.CIE_ID =
D.CIE_ID" ,this.dealerEmp.ToString(),"DC09_DEALER","CIE_NAME", "true")
+ "</td></tr>";
strReturn += "<tr><td>" + labels.Get("Department", "Department") +
"</td><td>" + myConnect.SqlDropDown("p_dep_id","SELECT D.DEP_ID,
D.DEP_DESC FROM T_DEPARTMENT D"
,this.depId.ToString(),"DEP_ID","DEP_DESC", "true") + "</td></tr>";
strReturn += "<tr><td>" + labels.Get("PerMat", "Personal
Matricule") + "</td><td><input type=\"text\" value=\"" +
this.perMat.ToString() + "\" id=\"p_per_mat\"></td></tr>";
strReturn += "<tr><td>" + labels.Get("StartDate", "Start Date") +
"</td><td><cstm:DateField id=\"\" valeur =\"" +
this.startDate.ToString() + "\" runat=\"server\"></td><td>" +
labels.Get("EndDate", "End Date") + "</td><td><input type=\"text\"
value=\"" + this.endDate.ToString() + "\"
id=\"p_end_date\"></td></tr>";
strReturn += "<tr><td>" + labels.Get("WorkTime", "Work Time") +
"</td><td><input type=\"text\" value=\"" + this.workTime.ToString() +
"\" id=\"p_work_time\"></td><td>" + labels.Get("Billable", "Billable")
+ "</td><td><input type=\"CheckBox\" value=\"1\" "+ ( this.billable ==
1 ? "checked" : "") +" id=\"p_billable\"></td></tr>";
strReturn += "";
return strReturn;
}

a l'interieur de ce formulaire, je veux inclure un user control pour
les champs de type date.

cette methode retourne un chaine contenant le code html que j'affiche
dans le webform avec un control asp:literal. en effet, en fonction
d'un parametre passé en url, le formulaire affiché peut etre celui ci
ou celui d'un autre objet.
or mon cstm:datefield n'est pas interprété. meme chose pour n'importe
quel web control que je pourrais inclure dans ce formulaire. (comme
des control validator par exemple)

y a t'il un autre moyen de faire ?

1 réponse

Avatar
YJLAMOTTE
Bonjour,
Peux etre devrais tu avoir une approche plus .NET et moins Scripting..
Tu crées 2 user control que tu affiches ou pas en fonction de tes params de ton URL, car d'apres ce que je déduis de ton code, tu crées des dropdown "a l'ancienne"
Apres dans chaque UserControle tu peux peut etre utiliser des controles serveurs

Et pour optimiser ton code si tu conserves cette solution, tu devrais utiliser un StringBuilder (Using System.text), tu gagnerais du temps sur les concaténations de chaines..

Si tu as d'autres problemes apres ces modifs n'hésites pas..

"Olivier Dri" a écrit :

bonjour

j'ai une classe dont une methode genere un formulaire alimenté avec
les données de mon objet.

public string DisplayFormEmp(DbClass myConnect, Content labels)
{
string strReturn = "";
strReturn += "<table><tr><td>" + labels.Get("Diploma", "Diploma") +
"</td><td>" + myConnect.SqlDropDown("p_dip_id","SELECT DIP_ID,
DIP_DESC FROM T_DIPLOMA" ,this.dipId.ToString(),"DIP_ID","DIP_DESC",
"true") + "</td></tr>";
strReturn += "<tr><td>" + labels.Get("WorkDealer", "Work Dealer") +
"</td><td>" + myConnect.SqlDropDown("p_dealer_work","SELECT
D.DC09_DEALER, CIE_NAME FROM T_DEALER D, T_COMPANY C WHERE C.CIE_ID > D.CIE_ID" ,this.dealerWork.ToString(),"DC09_DEALER","CIE_NAME",
"true") + "</td><td>" + labels.Get("EmpDealer", "Employee Dealer") +
"</td><td>" + myConnect.SqlDropDown("p_dealer_emp","SELECT
D.DC09_DEALER, CIE_NAME FROM T_DEALER D, T_COMPANY C WHERE C.CIE_ID > D.CIE_ID" ,this.dealerEmp.ToString(),"DC09_DEALER","CIE_NAME", "true")
+ "</td></tr>";
strReturn += "<tr><td>" + labels.Get("Department", "Department") +
"</td><td>" + myConnect.SqlDropDown("p_dep_id","SELECT D.DEP_ID,
D.DEP_DESC FROM T_DEPARTMENT D"
,this.depId.ToString(),"DEP_ID","DEP_DESC", "true") + "</td></tr>";
strReturn += "<tr><td>" + labels.Get("PerMat", "Personal
Matricule") + "</td><td><input type="text" value="" +
this.perMat.ToString() + "" id="p_per_mat"></td></tr>";
strReturn += "<tr><td>" + labels.Get("StartDate", "Start Date") +
"</td><td><cstm:DateField id="" valeur ="" +
this.startDate.ToString() + "" runat="server"></td><td>" +
labels.Get("EndDate", "End Date") + "</td><td><input type="text"
value="" + this.endDate.ToString() + ""
id="p_end_date"></td></tr>";
strReturn += "<tr><td>" + labels.Get("WorkTime", "Work Time") +
"</td><td><input type="text" value="" + this.workTime.ToString() +
"" id="p_work_time"></td><td>" + labels.Get("Billable", "Billable")
+ "</td><td><input type="CheckBox" value="1" "+ ( this.billable = > 1 ? "checked" : "") +" id="p_billable"></td></tr>";
strReturn += "";
return strReturn;
}

a l'interieur de ce formulaire, je veux inclure un user control pour
les champs de type date.

cette methode retourne un chaine contenant le code html que j'affiche
dans le webform avec un control asp:literal. en effet, en fonction
d'un parametre passé en url, le formulaire affiché peut etre celui ci
ou celui d'un autre objet.
or mon cstm:datefield n'est pas interprété. meme chose pour n'importe
quel web control que je pourrais inclure dans ce formulaire. (comme
des control validator par exemple)

y a t'il un autre moyen de faire ?