bind sortedlist dans Dropdownlist dans gridview
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
Code:
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 |
Page aspx.vb
Code:
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:
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> |