Bonjour
Voicis mon PB
Je récupère une sortedlist que je dois afficher dans mon gridview. Mais je suis un peu confus quand au moment ou je dois faire mon binding . Voicis mes codes
dans ma page aspx j'ai un itemtemplate dropdownlist "manager". C'est cette Dropdownlist que je souhaite alimenter via ma sortedlist.
Pourriez vous me dire à quelle moment je dois faire le binding entre ma sortedlist et ma dropdownlist. (je pensais le faire lors de l'événement RowDataBound (cf code), mais cela ne fonctionne pas)
Merci d'avance pour votre aide
Fonction select de mon DataObject qui me crée mon dataview
Page aspx.vb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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 <System.ComponentModel.DataObjectMethodAttribute _ (System.ComponentModel.DataObjectMethodType.Select, True)> _ Public Function GetAllSUSServersInGV() As DataView Dim dbDAO As New SUSDBServerDAO() Dim dt As New DataTable("Servers") Dim dr As DataRow Dim colId = New DataColumn("id", GetType(Int16)) dt.Columns.Add(colId) Dim colGuid = New DataColumn("guid", GetType(String)) dt.Columns.Add(colGuid) Dim colSid = New DataColumn("sid", GetType(String)) dt.Columns.Add(colSid) Dim colCn = New DataColumn("cn", GetType(String)) dt.Columns.Add(colCn) Dim colDn = New DataColumn("distinguishedName", GetType(String)) dt.Columns.Add(colDn) Dim colDesc = New DataColumn("description", GetType(String)) dt.Columns.Add(colDesc) Dim colType = New DataColumn("type", GetType(String)) dt.Columns.Add(colType) Dim colSite = New DataColumn("site", GetType(String)) dt.Columns.Add(colSite) Dim colIsInAD = New DataColumn("isInAD", GetType(Boolean)) dt.Columns.Add(colIsInAD) For Each srv As SUSDBServerDAO In dbDAO.GetAllSUSServerOnlyFromDB() dr = dt.NewRow() dr("id") = srv.Id dr("guid") = srv.Guid dr("sid") = srv.Sid dr("cn") = srv.Cn dr("distinguishedName") = srv.DistinguishedName dr("description") = srv.Description dr("type") = srv.Type dr("site") = srv.Site dr("isInAD") = srv.IsInAD dt.Rows.Add(dr) Next dt.Columns("distinguishedName").ColumnMapping = MappingType.Hidden Return dt.DefaultView End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Protected Sub ServGridView_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles ServGridView.RowDataBound Dim objSusUserFact As SUSUserFactory = New SUSUserFactory() ''Populate the dropdownlist with the user Dim dlManager As New DropDownList Dim SUSuserFact As New SUSUserFactory Dim slManager As New SortedList slManager = SUSuserFact.getInstanceDlUser dlManager = CType(e.Row.FindControl("manager"), DropDownList) dlManager.DataSource = slManager dlManager.DataTextField = "key" dlManager.DataValueField = "value" dlManager.DataBind() End Sub
Mon Gridview
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 <asp:GridView ID="ServGridView" runat="server" DataSourceID="ServObjectDataSource" DataKeyNames="id" AllowPaging="True" AllowSorting="True" CellPadding="4" PageSize="20" ForeColor="#333333" GridLines="None" Width="541px" AutoGenerateColumns="False"> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#EFF3FB" /> <Columns> <asp:TemplateField HeaderText="Id" SortExpression="id"> <EditItemTemplate> <asp:Label ID="id" runat="server" Text='<%# Bind("id") %>'></asp:Label> </EditItemTemplate> <ItemTemplate> <asp:Label ID="id" runat="server" Text='<%# Bind("id") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Name" SortExpression="cn"> <EditItemTemplate> <asp:TextBox ID="cn" runat="server" Text='<%# Bind("cn") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="cn" runat="server" Text='<%# Bind("cn") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Description" SortExpression="description"> <EditItemTemplate> <asp:TextBox ID="description" runat="server" Text='<%# Bind("description") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="description" runat="server" Text='<%# Bind("description") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Type" SortExpression="type"> <EditItemTemplate> <asp:DropDownList ID="type" SelectedValue='<%# Bind("type")%>' AutoPostBack="True" runat="server"> <asp:ListItem Value="none">Select One</asp:ListItem> <asp:ListItem Value="test"> Test </asp:ListItem> <asp:ListItem Value="prod"> Production </asp:ListItem> <asp:ListItem Value="exception"> Exception </asp:ListItem> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="type" runat="server" Text='<%# Bind("type") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Site" SortExpression="site"> <EditItemTemplate> <asp:DropDownList ID="site" SelectedValue='<%# Bind("site")%>' AutoPostBack="True" runat="server"> <asp:ListItem Value='none'> Select One </asp:ListItem> <asp:ListItem Value="LAN"> LAN </asp:ListItem> <asp:ListItem Value="DMZ"> DMZ </asp:ListItem> <asp:ListItem Value="WAN"> WAN </asp:ListItem> <asp:ListItem Value="exception"> Exception </asp:ListItem> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="site" runat="server" Text='<%# Bind("site") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Server In AD ?" SortExpression="isInAD"> <EditItemTemplate> </EditItemTemplate> <ItemTemplate> <asp:Label ID="isInAD" runat="server" Text='<%# Bind("isInAD") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="User manager" SortExpression=""> <ItemTemplate> <asp:DropDownList ID="manager" runat="server" /> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="manager" AutoPostBack="true" runat="server" /> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField> <EditItemTemplate> </EditItemTemplate> <ItemTemplate> <asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick="return confirm('Are you certain you want to delete this Server ?');" Text="Delete" > </asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="True" ButtonType="Image" CancelImageUrl="~/img/cancel.gif" DeleteImageUrl="~/img/cancel.gif" EditImageUrl="~/img/folder_edit.png" UpdateImageUrl="~/img/tick.gif" /> </Columns> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#9B8FEC" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView>
Partager