Bonjour,
j'ai 1 datagrid avec 2 colonnes de type templateColumn (pour pouvoir les modifier avec 1 EditCommandColumn) mais selon les "circonstances" il faudrait que j'empêche la modification de l'une ou l'autre des colonnes...
Pour être plus clair voici 1 partie de mon code :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 
 |  
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="BonsLivraisonsCtrlAdresse.ascx.vb" Inherits="Sagem.DNN.Modules.BonsLivraisonsCtrlAdresse.BonsLivraisonsCtrlAdresse" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
....
<asp:datagrid id="DG_CtrlAdresse" runat="server" Width="1800px" MaxWidth="2000px" AllowSorting="True"
	CellPadding="0" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#3366CC"
	AutoGenerateColumns="False" GridLines="None"
	OnEditCommand="Edit"
     OnUpdateCommand="Update"
     OnCancelCommand="Cancel">
     ....
	<Columns> 
	<asp:EditCommandColumn HeaderText="Action" HeaderStyle-ForeColor="red" HeaderStyle-Font-Bold="True"
	HeaderStyle-HorizontalAlign="Left" ItemStyle-width="100px"
	ItemStyle-HorizontalAlign="Left" ItemStyle-ForeColor="red" ItemStyle-Font-Bold="True"
	CancelText="Annuler" UpdateText="MAJ" EditText="Modifier">
	</asp:EditCommandColumn>
	<asp:BoundColumn DataField="Ad_idAdresse" HeaderText="Adresse" Visible="false" ReadOnly="true"></asp:BoundColumn>
	<asp:BoundColumn DataField="En_idEntreprise" HeaderText="Adresse" Visible="false" ReadOnly="true"></asp:BoundColumn>
 
	<asp:TemplateColumn HeaderText="Entreprise">
		<ItemTemplate>
             <%#Container.DataItem("En_sNom")%>
        </ItemTemplate>
		<EditItemTemplate>
			<asp:TextBox id="TextBox2" name="TextBox2" Value='<%#Container.DataItem("En_sNom")%>' runat="Server" Width="400" ></asp:TextBox>
		</EditItemTemplate>
		<ItemStyle Width="500px"></ItemStyle>
	</asp:TemplateColumn>
 
	<asp:BoundColumn DataField="Si_sNomSite" HeaderText="Site" ReadOnly="true" ItemStyle-Width="100px"></asp:BoundColumn>
 
	<asp:TemplateColumn HeaderText="Adresse" >
		<ItemTemplate>
             <%#Container.DataItem("Ad_sAdresse")%>
        </ItemTemplate>
		<EditItemTemplate>
			<asp:TextBox id="TextBox1" name="TextBox1" Value='<%#Container.DataItem("Ad_sAdresse")%>' runat="Server" Width="400" ></asp:TextBox>
		</EditItemTemplate>
		<ItemStyle Width="500px"></ItemStyle>
	</asp:TemplateColumn>
 
	....	
		<asp:TemplateColumn HeaderText="Cocher pour<br/>invalider l'entreprise" ItemStyle-HorizontalAlign="Center">
			<ItemTemplate>
				<asp:CheckBox ID="chkSelectionEn"  Runat="server" />
			</ItemTemplate>
			<ItemStyle HorizontalAlign="Center" width="150px"></ItemStyle>
		</asp:TemplateColumn>
		<asp:TemplateColumn HeaderText="Cocher pour<br/>invalider l'adresse" ItemStyle-HorizontalAlign="Center">
			<ItemTemplate>
				<asp:CheckBox ID="chkSelectionAd"  Runat="server" />
			</ItemTemplate>
			<ItemStyle HorizontalAlign="Center" width="150px"></ItemStyle>
		</asp:TemplateColumn>
		<asp:TemplateColumn HeaderText="Cocher pour mettre en attente" ItemStyle-HorizontalAlign="Center">
			<ItemTemplate>
				<asp:CheckBox ID="chkAttente"  Runat="server" />
			</ItemTemplate>
			<ItemStyle HorizontalAlign="Center" width="150px"></ItemStyle>
		</asp:TemplateColumn>
	</Columns>
	<PagerStyle Height="20px" HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
..... | 
 Les 2 colonnes en question sont Entreprise et Adresse. Elles contiennent respectivement les controls TextBox2 et TextBox1, que je voudrais rendre "non-editable" selon certains critères....
J'essaye de selectionner mon controle comme ça mais sans résultat :
	
	| 12
 
 |  
DG_CtrlAdresse.FindControl("TextBox2").EnableViewState = False | 
 J'ai cru lire que le Datagrid "changeait" les ID des controles à sa manière, et qu'on ne peut donc pas selectionner le control par son Id ...Et je ne vois pas comment faire alors...
Je pense qu'il faut partir d'un truc comme ça :
	
	DG_CtrlAdresse.EditItemIndex = e.Item.ItemIndex
 mais je vois pas comment aller + loin...
Merci d'avance 
						
					
Partager