Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Conditionner l'affichage de control dans un repeater

3 réponses
Avatar
Mick
Bonjour,
je tente d'affiche une liste de questions et de réponses dans ma page,
simulant un Qcm.
J'ai donc un repeater pour les questions et un repeater imbriqué pour chaque
réponse.

La ou je coince, c'est sur le point suivant.
Selon le cas, la question peut avoir 1 ou plusieurs réponses.
Si elle ne peut avoir qu'une seule réponse, je voudrais afficher des radio
button.
Si elle peut en avoir plusieurs, des checkbox.

Dans mon *.aspx, je met ceci :
<td width="5%">
<%# setCheckBoxOrRadio(DataBinder.Eval(Container.DataItem,
"AnswerId").ToString()) %>
</td>

et dans mon *.aspx.cs
protected string setCheckBoxOrRadio(string selectedAnswerId)
{
//If Statement sur la question parente et sa propriété HasSeveralAnswers
Si 1 seule reponse
return ("<asp:RadioButton Runat=\"server\" Checked=\"False\"
GroupName='<%# DataBinder.Eval(Container.DataItem, \"QId\") %>'
ID=\"ClientCompanyTestQcmQuestionRadioPropositon\"
BorderStyle=None></asp:RadioButton>");
Si plusieurs reponses
return ("<asp:CheckBox Checked=\"False\"
ID=\"ClientCompanyTestQcmQuestionChkPropositon\" Runat=\"server\"
Width=\"10\" BorderStyle=None></asp:CheckBox>");
}

Helas, ca ne me retourne rien...
Un peu d'aide serait la bienvenue.

merci d'avance ^^

3 réponses

Avatar
Vko
Plusieurs possibilité dont entres-autres :

1 - Dans le .ASPX

<td>
<asp:placeholder id="PlaceHolder1" runat="server" />
</td>

2 - Dans le .ASPX.CS :

Ajouter un Event Handler pour l'évènement DataBound du repeater et dans le
code de l'eventhandler faire quelque chose dans le style :

private void Repeater1_DataBound (...)
{
if ( e.Item.ItemType = ListItemtype.Item || e.Item.ItemType =
ListItemtype.AlternatingItem )
{
Control placeHolder = e.FindControl ("PlaceHolder1");
if (placeHolder != null)
{
if ( checkbox )
{
CheckBox chk = new CheckBox();
placeholder.Controls.Add (chk);
}
else
{
RadioButton rad = new RadioButton();
placeholder.Controls.Add (rad);
}
}
}
}



"Mick" wrote:

Bonjour,
je tente d'affiche une liste de questions et de réponses dans ma page,
simulant un Qcm.
J'ai donc un repeater pour les questions et un repeater imbriqué pour chaque
réponse.

La ou je coince, c'est sur le point suivant.
Selon le cas, la question peut avoir 1 ou plusieurs réponses.
Si elle ne peut avoir qu'une seule réponse, je voudrais afficher des radio
button.
Si elle peut en avoir plusieurs, des checkbox.

Dans mon *.aspx, je met ceci :
<td width="5%">
<%# setCheckBoxOrRadio(DataBinder.Eval(Container.DataItem,
"AnswerId").ToString()) %>
</td>

et dans mon *.aspx.cs
protected string setCheckBoxOrRadio(string selectedAnswerId)
{
//If Statement sur la question parente et sa propriété HasSeveralAnswers
Si 1 seule reponse
return ("<asp:RadioButton Runat="server" Checked="False"
GroupName='<%# DataBinder.Eval(Container.DataItem, "QId") %>'
ID="ClientCompanyTestQcmQuestionRadioPropositon"
BorderStyle=None></asp:RadioButton>");
Si plusieurs reponses
return ("<asp:CheckBox Checked="False"
ID="ClientCompanyTestQcmQuestionChkPropositon" Runat="server"
Width="10" BorderStyle=None></asp:CheckBox>");
}

Helas, ca ne me retourne rien...
Un peu d'aide serait la bienvenue.

merci d'avance ^^






Avatar
Joël Descombes
Conseil d'ami...un excellent bouquin ASP.NET devrait fortement d'aider.


"Mick" a écrit :

Bonjour,
je tente d'affiche une liste de questions et de réponses dans ma page,
simulant un Qcm.
J'ai donc un repeater pour les questions et un repeater imbriqué pour chaque
réponse.

La ou je coince, c'est sur le point suivant.
Selon le cas, la question peut avoir 1 ou plusieurs réponses.
Si elle ne peut avoir qu'une seule réponse, je voudrais afficher des radio
button.
Si elle peut en avoir plusieurs, des checkbox.

Dans mon *.aspx, je met ceci :
<td width="5%">
<%# setCheckBoxOrRadio(DataBinder.Eval(Container.DataItem,
"AnswerId").ToString()) %>
</td>

et dans mon *.aspx.cs
protected string setCheckBoxOrRadio(string selectedAnswerId)
{
//If Statement sur la question parente et sa propriété HasSeveralAnswers
Si 1 seule reponse
return ("<asp:RadioButton Runat="server" Checked="False"
GroupName='<%# DataBinder.Eval(Container.DataItem, "QId") %>'
ID="ClientCompanyTestQcmQuestionRadioPropositon"
BorderStyle=None></asp:RadioButton>");
Si plusieurs reponses
return ("<asp:CheckBox Checked="False"
ID="ClientCompanyTestQcmQuestionChkPropositon" Runat="server"
Width="10" BorderStyle=None></asp:CheckBox>");
}

Helas, ca ne me retourne rien...
Un peu d'aide serait la bienvenue.

merci d'avance ^^






Avatar
Mick
mais encore...

"Joël Descombes" a écrit dans le
message de news:
Conseil d'ami...un excellent bouquin ASP.NET devrait fortement d'aider.


"Mick" a écrit :

> Bonjour,
> je tente d'affiche une liste de questions et de réponses dans ma page,
> simulant un Qcm.
> J'ai donc un repeater pour les questions et un repeater imbriqué pour


chaque
> réponse.
>
> La ou je coince, c'est sur le point suivant.
> Selon le cas, la question peut avoir 1 ou plusieurs réponses.
> Si elle ne peut avoir qu'une seule réponse, je voudrais afficher des


radio
> button.
> Si elle peut en avoir plusieurs, des checkbox.
>
> Dans mon *.aspx, je met ceci :
> <td width="5%">
> <%# setCheckBoxOrRadio(DataBinder.Eval(Container.DataItem,
> "AnswerId").ToString()) %>
> </td>
>
> et dans mon *.aspx.cs
> protected string setCheckBoxOrRadio(string selectedAnswerId)
> {
> //If Statement sur la question parente et sa propriété


HasSeveralAnswers
> Si 1 seule reponse
> return ("<asp:RadioButton Runat="server" Checked="False"
> GroupName='<%# DataBinder.Eval(Container.DataItem, "QId") %>'
> ID="ClientCompanyTestQcmQuestionRadioPropositon"
> BorderStyle=None></asp:RadioButton>");
> Si plusieurs reponses
> return ("<asp:CheckBox Checked="False"
> ID="ClientCompanyTestQcmQuestionChkPropositon" Runat="server"
> Width="10" BorderStyle=None></asp:CheckBox>");
> }
>
> Helas, ca ne me retourne rien...
> Un peu d'aide serait la bienvenue.
>
> merci d'avance ^^
>
>
>
>