OVH Cloud OVH Cloud

ASP.NET/C# : DataGrid et problème :-(

4 réponses
Avatar
nico
Bonjour

j'ai une question :

j'ai un datagrid sur ma page et je rajoute à ce dataGrid une colonne qui
contient une checkBox.

Mon problème et que je veux que cette checkBox soit cochée SI le contenu
d'un de mes champs de mon dataView (id_admin) est différent de NULL. Je ne
vois pas comment spécifier dynamiquement la valeur de la propriété checked à
true ou false.

Voici comment je déclare mon dataGrid :

<asp:DataGrid id="dataGridMembre" style="Z-INDEX: 101; LEFT: 120px;
POSITION: absolute; TOP: 104px"
runat="server" Width="248px" Height="64px" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn HeaderText="Id membre"
DataField="id_membre"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Login"
DataField="login"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Statut administrateur">
<ItemTemplate>
<asp:CheckBox ID="chkAdmin" Runat="server" Checked="True"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>

</asp:DataGrid>



comment faire cela svp

4 réponses

Avatar
Norm
dans le evenement item_databound du datagrid tu vérifies la valeur.
Voici le code en vb, tu pourras facilement le transférer en C#
Private sub dataGridMembre_ItemDataBound(....)

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
ListItemType.AlternatingItem Then

if not isdbnull(e.item.dataitem("id_admin")) then
CType(e.Item.FindControl("chkAdmin"), checkBox ).checked = true
else
CType(e.Item.FindControl("chkAdmin"), checkBox ).checked = false
end if

end if



end sub


"nico" a écrit dans le message de news:

Bonjour

j'ai une question :

j'ai un datagrid sur ma page et je rajoute à ce dataGrid une colonne qui
contient une checkBox.

Mon problème et que je veux que cette checkBox soit cochée SI le contenu
d'un de mes champs de mon dataView (id_admin) est différent de NULL. Je ne
vois pas comment spécifier dynamiquement la valeur de la propriété checked
à
true ou false.

Voici comment je déclare mon dataGrid :

<asp:DataGrid id="dataGridMembre" style="Z-INDEX: 101; LEFT: 120px;
POSITION: absolute; TOP: 104px"
runat="server" Width="248px" Height="64px" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn HeaderText="Id membre"
DataField="id_membre"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Login"
DataField="login"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Statut administrateur">
<ItemTemplate>
<asp:CheckBox ID="chkAdmin" Runat="server" Checked="True"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>

</asp:DataGrid>



comment faire cela svp





Avatar
Mick
Salut,
je fais face au mm pb avec mon repeater.
Mais ma conversion c# n'est pas exact.
Un petit peu d'aide serait la bienvenue ^^.
Il me sort que " 'DataItem' designe 'propriété' ou 'méthode' était attendu"
private void EmployeeInfoTagRepeater_ItemDataBound(object sender,
RepeaterItemEventArgs e)

{

if(e.Item.DataItem("IsMandatory")!=null)

((CheckBox)e.Item.FindControl("EmployeeInfoIsMandatoryTag")).Checked= true;

else

((CheckBox)e.Item.FindControl("EmployeeInfoIsMandatoryTag")).Checked= false;

}






"Norm" a écrit dans le message de
news:%
dans le evenement item_databound du datagrid tu vérifies la valeur.
Voici le code en vb, tu pourras facilement le transférer en C#
Private sub dataGridMembre_ItemDataBound(....)

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType > ListItemType.AlternatingItem Then

if not isdbnull(e.item.dataitem("id_admin")) then
CType(e.Item.FindControl("chkAdmin"), checkBox ).checked = true
else
CType(e.Item.FindControl("chkAdmin"), checkBox ).checked = false
end if

end if



end sub


"nico" a écrit dans le message de news:

> Bonjour
>
> j'ai une question :
>
> j'ai un datagrid sur ma page et je rajoute à ce dataGrid une colonne qui
> contient une checkBox.
>
> Mon problème et que je veux que cette checkBox soit cochée SI le contenu
> d'un de mes champs de mon dataView (id_admin) est différent de NULL. Je


ne
> vois pas comment spécifier dynamiquement la valeur de la propriété


checked
> à
> true ou false.
>
> Voici comment je déclare mon dataGrid :
>
> <asp:DataGrid id="dataGridMembre" style="Z-INDEX: 101; LEFT: 120px;
> POSITION: absolute; TOP: 104px"
> runat="server" Width="248px" Height="64px"


AutoGenerateColumns="False">
> <Columns>
> <asp:BoundColumn HeaderText="Id membre"
> DataField="id_membre"></asp:BoundColumn>
> <asp:BoundColumn HeaderText="Login"
> DataField="login"></asp:BoundColumn>
> <asp:TemplateColumn HeaderText="Statut administrateur">
> <ItemTemplate>
> <asp:CheckBox ID="chkAdmin" Runat="server" Checked="True"/>
> </ItemTemplate>
> </asp:TemplateColumn>
> </Columns>
>
> </asp:DataGrid>
>
>
>
> comment faire cela svp
>
>
>




Avatar
Norm
il importe de tester que les items et alternate item car dans le
itemdatabound, le test est aussi fait pour les header et footer.
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
ListItemType.AlternatingItem Then
peut-être cela réglera ton problème!

"Mick" a écrit dans le message de news:
41ab3052$0$22413$
Salut,
je fais face au mm pb avec mon repeater.
Mais ma conversion c# n'est pas exact.
Un petit peu d'aide serait la bienvenue ^^.
Il me sort que " 'DataItem' designe 'propriété' ou 'méthode' était
attendu"
private void EmployeeInfoTagRepeater_ItemDataBound(object sender,
RepeaterItemEventArgs e)

{

if(e.Item.DataItem("IsMandatory")!=null)

((CheckBox)e.Item.FindControl("EmployeeInfoIsMandatoryTag")).Checked=
true;

else

((CheckBox)e.Item.FindControl("EmployeeInfoIsMandatoryTag")).Checked=
false;

}






"Norm" a écrit dans le message de
news:%
dans le evenement item_databound du datagrid tu vérifies la valeur.
Voici le code en vb, tu pourras facilement le transférer en C#
Private sub dataGridMembre_ItemDataBound(....)

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType >> ListItemType.AlternatingItem Then

if not isdbnull(e.item.dataitem("id_admin")) then
CType(e.Item.FindControl("chkAdmin"), checkBox ).checked = true
else
CType(e.Item.FindControl("chkAdmin"), checkBox ).checked = false
end if

end if



end sub


"nico" a écrit dans le message de news:

> Bonjour
>
> j'ai une question :
>
> j'ai un datagrid sur ma page et je rajoute à ce dataGrid une colonne
> qui
> contient une checkBox.
>
> Mon problème et que je veux que cette checkBox soit cochée SI le
> contenu
> d'un de mes champs de mon dataView (id_admin) est différent de NULL. Je


ne
> vois pas comment spécifier dynamiquement la valeur de la propriété


checked
> à
> true ou false.
>
> Voici comment je déclare mon dataGrid :
>
> <asp:DataGrid id="dataGridMembre" style="Z-INDEX: 101; LEFT: 120px;
> POSITION: absolute; TOP: 104px"
> runat="server" Width="248px" Height="64px"


AutoGenerateColumns="False">
> <Columns>
> <asp:BoundColumn HeaderText="Id membre"
> DataField="id_membre"></asp:BoundColumn>
> <asp:BoundColumn HeaderText="Login"
> DataField="login"></asp:BoundColumn>
> <asp:TemplateColumn HeaderText="Statut administrateur">
> <ItemTemplate>
> <asp:CheckBox ID="chkAdmin" Runat="server" Checked="True"/>
> </ItemTemplate>
> </asp:TemplateColumn>
> </Columns>
>
> </asp:DataGrid>
>
>
>
> comment faire cela svp
>
>
>








Avatar
Mick
Nope, mm sushi ^^

"Norm" a écrit dans le message de
news:%
il importe de tester que les items et alternate item car dans le
itemdatabound, le test est aussi fait pour les header et footer.
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType > ListItemType.AlternatingItem Then
peut-être cela réglera ton problème!

"Mick" a écrit dans le message de news:
41ab3052$0$22413$
> Salut,
> je fais face au mm pb avec mon repeater.
> Mais ma conversion c# n'est pas exact.
> Un petit peu d'aide serait la bienvenue ^^.
> Il me sort que " 'DataItem' designe 'propriété' ou 'méthode' était
> attendu"
> private void EmployeeInfoTagRepeater_ItemDataBound(object sender,
> RepeaterItemEventArgs e)
>
> {
>
> if(e.Item.DataItem("IsMandatory")!=null)
>
> ((CheckBox)e.Item.FindControl("EmployeeInfoIsMandatoryTag")).Checked > > true;
>
> else
>
> ((CheckBox)e.Item.FindControl("EmployeeInfoIsMandatoryTag")).Checked > > false;
>
> }
>
>
>
>
>
>
> "Norm" a écrit dans le message de
> news:%
>> dans le evenement item_databound du datagrid tu vérifies la valeur.
>> Voici le code en vb, tu pourras facilement le transférer en C#
>> Private sub dataGridMembre_ItemDataBound(....)
>>
>> If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType > >> ListItemType.AlternatingItem Then
>>
>> if not isdbnull(e.item.dataitem("id_admin")) then
>> CType(e.Item.FindControl("chkAdmin"), checkBox ).checked = true
>> else
>> CType(e.Item.FindControl("chkAdmin"), checkBox ).checked false
>> end if
>>
>> end if
>>
>>
>>
>> end sub
>>
>>
>> "nico" a écrit dans le message de news:
>>
>> > Bonjour
>> >
>> > j'ai une question :
>> >
>> > j'ai un datagrid sur ma page et je rajoute à ce dataGrid une colonne
>> > qui
>> > contient une checkBox.
>> >
>> > Mon problème et que je veux que cette checkBox soit cochée SI le
>> > contenu
>> > d'un de mes champs de mon dataView (id_admin) est différent de NULL.


Je
> ne
>> > vois pas comment spécifier dynamiquement la valeur de la propriété
> checked
>> > à
>> > true ou false.
>> >
>> > Voici comment je déclare mon dataGrid :
>> >
>> > <asp:DataGrid id="dataGridMembre" style="Z-INDEX: 101; LEFT: 120px;
>> > POSITION: absolute; TOP: 104px"
>> > runat="server" Width="248px" Height="64px"
> AutoGenerateColumns="False">
>> > <Columns>
>> > <asp:BoundColumn HeaderText="Id membre"
>> > DataField="id_membre"></asp:BoundColumn>
>> > <asp:BoundColumn HeaderText="Login"
>> > DataField="login"></asp:BoundColumn>
>> > <asp:TemplateColumn HeaderText="Statut administrateur">
>> > <ItemTemplate>
>> > <asp:CheckBox ID="chkAdmin" Runat="server" Checked="True"/>
>> > </ItemTemplate>
>> > </asp:TemplateColumn>
>> > </Columns>
>> >
>> > </asp:DataGrid>
>> >
>> >
>> >
>> > comment faire cela svp
>> >
>> >
>> >
>>
>>
>
>