В моем ListView
у меня есть ItemTemplate
и EditItemTemplate
, которые выглядят примерно так, соответственно.Доступ к элементам управления в команде редактирования списка ListView
------->
При нажатии на кнопку «Редактировать», и он переключается на EditItemTemplate
взгляд справа, я хочу предварительного заполнения поля Textbox
и выберите соответствующий option
в DropDownList
. Как я могу это сделать?
Прежде чем вы скажете, что хотите использовать что-то вроде следующего, пожалуйста, знайте, что я уже изучил все возможные варианты, о которых я могу думать. Извините, что вы так требовательны, но, пожалуйста, будьте готовы пройти меня через этот, если вы ответите. ^.^Я застряли в этом вопросе в течение буквально месяца :(
Dim lv As ListView = DirectCast(sender, ListView) 'sender is the ListView on the ItemCommand event
Dim ddl As DropDownList = DirectCast(lv.Items(0).FindControl("NewProductName_ddl"), DropDownList)
Dim tb As TextBox = DirectCast(lv.Items(0).FindControl("NewProductName_tb"), TextBox)
UPDATE -. RAWR !!
О моей долбанной благости, так близко, но не сигары Следующий код работает для автозаполнения, когда только один пункт был в ListView, но когда существует более чем один товар, он бросает NullReferenceException :(
'PROBLEM WAS HERE: Compare to the working code in my answer.
Protected Sub NewProduct_ItemDataBound(ByVal sender As ListView, ByVal e As ListViewItemEventArgs) Handles NewProduct.ItemDataBound
If sender.EditIndex > -1 Then
Dim ddl As DropDownList = DirectCast(e.Item.FindControl("NewProductName_ddl"), DropDownList)
Dim tb As TextBox = DirectCast(e.Item.FindControl("NewProductName_cb"), TextBox)
ddl.Items.FindByValue(sender.DataKeys(sender.EditIndex)("ID").ToString).Selected = True 'Prefills the DropDownList
tb.Text = sender.DataKeys(sender.EditIndex)("Product").ToString 'Prefills the TextBox
End If
End Sub
Вы смотрели здесь http://stackoverflow.com/questions/825048/accessing-controls-in-the-edititemtemplate-of-a -Посмотреть список. В каком событии вы пытаетесь получить доступ к элементу управления? –
@PaulMcCowat Да, и я сейчас смотрю на это более внимательно, но у меня все еще возникают проблемы с подключением точек. Как мне сказать «ItemDataBound DropDownList», что значение SelectedValue должно быть указано в событии ItemCommand? Т.е. как передать эти данные между событиями? Или я думаю об этом неправильно? Посмотрите, как я запутался? : '( – Chiramisu
Похоже, вы находите 'NewProductName_ddl', как если бы это был один экземпляр. Вероятно, это вернет коллекцию DropDownLists. Очень сложно помочь вам и написать код, не имея полного html и кода, доступного. –