【问题标题】:Populate DDL with codebehind when listview is in edit编辑列表视图时使用代码隐藏填充 DDL
【发布时间】:2013-02-09 15:50:18
【问题描述】:

我有一个带有 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 找不到控件。关于我哪里出错的任何想法?

【问题讨论】:

    标签: asp.net listview drop-down-menu


    【解决方案1】:

    作为一种解决方法,您可以将数据绑定保留在 ItemDataBound 事件中,并以编程方式设置下拉列表的选定值。我知道这很痛苦,但它会解决您遇到的问题。

    【讨论】:

    • Brian 谢谢....所以我将下拉列表绑定到隐藏字段,然后当 itemdatabound 我通过填充下拉列表并从适当的隐藏字段中设置所选值...你会怎么做是吗?
    • Brian 谢谢...按照上面的方法做了,它可以工作...虽然我认为必须有更简单的方法来做到这一点。
    猜你喜欢
    • 2014-09-09
    • 2012-11-22
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多