Re[2]: Встроить Combobox в ListView?
От: Аноним  
Дата: 28.03.12 11:28
Оценка:
Здравствуйте, Solova, Вы писали:

S>Почему бы не использовать DropDownList?

S>
S><asp:DropDownList SelectedValue='<%# Bind("ProjectID") %>' 
S>                            DataSourceID="!Здесь имя Вашего SqlDataSource!" DataTextField="!Имя отображаемого поля!" 
S>                            DataValueField="!Имя поля, которое будет выступать значением!" ID="DropDownList" runat="server">
S>                        </asp:DropDownList>
S>


Таже проблемма как и у автора поста. Опишу проблемму:
использую VS 2010. АСП создаю страничку на которой выводятся данные из БД в ListView, при чем выводится объедененная таблица. Т.е. Имею таблицу Владельцы с полями ID, FirstName, LastName, CarID. И вторую таблицу Машины с полями ID и CarName. Теперь при редактировании записи в ListView, пытаюсь вместо выводимого TextBox для поля CarName, вывести DropDownList с данными из таблицы Машины. Получается все прекрасно до тех пор пока не пытаюсь привязывать выводимый DropDownList к редактируемой записи. А конкретно пытаюсь изменить выбранное значение списка, чтобы оно соответствовало текущему автомобилю редактируемого владельца. Вот пример кода:

<EditItemTemplate>
       <tr>...
             ...
                <td>
                       <asp:DropDownList ID="ddlCarID" runat="server" DataSourceID="SqlDataSource2" 
                              DataTextField="CarName" DataValueField="ID" Visible="true"
                              SelectedValue='<%# Bind("CarName") %>'>
                              </asp:DropDownList>
                </td>
                ...
       </tr>
</EditItemTemplate>

Если использую SelectedValue отладчик ругается выдает следующую ошибку: "Sys.WebForms.PageRequestManagerServerErrorException: 'ddlCarID' имеет SelectedValue, что недопустимо, так как этот элемент не существует в списке элементов. Имя параметра: value"
Привязать по SelectedIndex тоже не получается поскольку в выводимой таблице нет CarID а есть только CarName. Может конечно проблема возникает из-за того, что список я заполняю отдельным запросом SqlDataSource2, в то время как в ListView вывожу объдененную таблицу из SqlDataSource1. Но тогда мне собственно совсем не понятно как реализовать все одним запросом и список заполнить и в ListView вывести объедененную таблицу. Если кто-нибудь может подсказать как решить проблему буду очень признателен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.