Okay, hvad siger du til det her?
Det spændende ligger i DataGrid1_ItemDataBound, hvor jeg samler dropdownboxen op, smider data i den, og sætter den valgte værdi. Det burde ikke være svært at erstatte datakilden til dropdownboxen.
Håber det giver mening... :)
webform1.aspx:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="Eksperten.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="
http://schemas.microsoft.com/intellisense/ie5"> </HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="strTitle"></asp:BoundColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:DropDownList ID="ddlStatus" DataTextField="strTitle" DataValueField="ID" Runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>
webform1.aspx.vb:
Public Class WebForm1
Inherits System.Web.UI.Page
Dim tblStatus As New DataTable
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
'Trace.IsEnabled = True
Dim tblData As New DataTable
Dim rwRow As DataRow
With tblStatus
.Columns.Add(New DataColumn("ID", GetType(Integer)))
.Columns.Add(New DataColumn("strTitle", GetType(String)))
End With
rwRow = tblStatus.NewRow
rwRow.Item("ID") = 1
rwRow.Item("strTitle") = "Ok"
Call tblStatus.Rows.Add(rwRow)
rwRow = tblStatus.NewRow
rwRow.Item("ID") = 2
rwRow.Item("strTitle") = "Knap så ok"
Call tblStatus.Rows.Add(rwRow)
rwRow = tblStatus.NewRow
rwRow.Item("ID") = 3
rwRow.Item("strTitle") = "Slet ikke ok"
Call tblStatus.Rows.Add(rwRow)
With tblData
.Columns.Add(New DataColumn("ID", GetType(Integer)))
.Columns.Add(New DataColumn("strTitle", GetType(String)))
.Columns.Add(New DataColumn("intStatus", GetType(Integer)))
End With
For i As Integer = 1 To 10
rwRow = tblData.NewRow
rwRow.Item("ID") = i
rwRow.Item("strTitle") = i.ToString & ": Hello World!"
rwRow.Item("intStatus") = (i Mod 3) + 1
tblData.Rows.Add(rwRow)
Next
DataGrid1.DataSource = tblData
DataGrid1.DataBind()
End If
End Sub
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.AlternatingItem, ListItemType.Item
Dim ddlStatus As DropDownList = e.Item.FindControl("ddlStatus")
ddlStatus.DataSource = tblStatus
Call ddlStatus.DataBind()
ddlStatus.SelectedValue = e.Item.DataItem("intStatus")
End Select
End Sub
End Class