2013-02-09 46 views
0

我有一個帶有LayoutTemplate,ItemTemplate和EditTemplate的ListView。 listview綁定到代碼隱藏的數據表。項目模板由標籤和複選框組成。 listview只會顯示一條記錄。在ItemTemplate中,listview的效果很好。在點擊Edit按鈕時,我的ItemEditing方法被調用,它具有以下內容。順便說一句,EditTemplate有文本框複選框和4個下拉列表。在編輯列表視圖時填充DDL代碼隱藏

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中,我得到了綁定失敗的價值沒有在下拉列表中存在錯誤。

於是,我就填充我dropdownlists時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。任何想法,我要去哪裏錯了?

回答

1

作爲一項工作,您可以將數據綁定保留在ItemDataBound事件中,並以編程方式設置下拉列表的選定值。這是我所知道的痛苦,但它會解決您遇到的問題。

+0

Brian Thanks ....所以我把dropdownlists綁定到hiddenfields,然後當itemdatabound我通過填充下拉列表並從適當的隱藏字段設置選定的值...是你如何做到這一點? – Mych 2013-02-09 21:02:38

+0

布賴恩謝謝...按照上面的方法,它的工作原理...雖然我認爲必須有一個更簡單的方法來做到這一點。 – Mych 2013-02-10 09:55:04