我有一个带有 LayoutTemplate、ItemTemplate 和 EditTemplate 的 ListView。列表视图绑定到代码隐藏中的数据表。项目模板由标签和复选框组成。列表视图只会显示一条记录。在 ItemTemplate 中,列表视图效果很好。单击“编辑”按钮时,将调用我的 ItemEditing 方法,该方法具有以下内容。顺便说一句,EditTemplate 有文本框复选框和 4 个下拉列表。
Protected Sub ListView1_ItemEditing(ByVal sender As Object, ByVal e As ListViewEditEventArgs) Handles ListView1.ItemEditing
ListView1.EditIndex = e.NewEditIndex
'Create SQL, Execute and save to Datatable and bind to ListView1
'Session("SID") is the ID of the Subject we are viewing.
LoadData(Session("SID"))
End Sub
不幸的是,由于下拉列表中有 lo ListItems,我收到一个错误,即绑定失败,因为下拉列表中不存在该值。
所以我试图在 ItemCreated 时填充我的下拉列表......我的代码是......
Protected Sub ListView1_ItemCreated(ByVal sender As Object, ByVal e As ListViewItemEventArgs) Handles ListView1.ItemCreated
Try
Dim ddl_Type As DropDownList = ListView1.EditItem.FindControl("ddl_Type")
Dim ddl_Suitability As DropDownList = ListView1.EditItem.FindControl("ddl_Suitability")
Dim ddl_Brands As DropDownList = ListView1.EditItem.FindControl("ddl_Brands")
Dim ddl_Status As DropDownList = ListView1.EditItem.FindControl("ddl_Status")
'We need to populate ddls
SqlStr = "SELECT Type As ddlText FROM tbl_SType ORDER BY Type"
PopulateDDL(ddl_Type, SqlStr, "Please Select...")
SqlStr = "SELECT Suitability As ddlText FROM tbl_Suitability ORDER BY Suitability"
PopulateDDL(ddl_Suitability, SqlStr, "Please Select...")
SqlStr = "SELECT Brand As ddlText FROM tbl_Brands ORDER By Brand"
PopulateDDL(ddl_Brands, SqlStr, "Please Select...", "Other...")
SqlStr = "SELECT StatusText As ddlText, Status As ddlValue FROM tbl_Status ORDER BY Status"
PopulateDDLvalue(ddl_Status, SqlStr, "Not Visited Yet", "0")
Catch ex As Exception
End Try
End Sub
但是 FindControl 找不到控件。关于我哪里出错的任何想法?