Доступ к экземпляру Listview из его класса DataSource c # - PullRequest
1 голос
/ 20 апреля 2011

У меня есть ListView на веб-странице, связанной с источником данных класса c # с именем CommentsDAO. Этот класс имеет методы для извлечения или удаления данных из ListView. Нет проблем с получением данных, но для удаления строки мне нужно получить выбранную строку, но экземпляр ListView не входит в область действия своего источника данных. Чтобы удалить строки, у меня есть кнопка (imgbtn1) рядом с каждой строкой с командой «Удалить».

<asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDataSource1">
                    <LayoutTemplate>
                        <div id="itemPlaceholderContainer" runat="server" style="">
                            <span id="itemPlaceholder" runat="server" />
                        </div>
                    </LayoutTemplate>
                    <ItemTemplate>
                        <span>
                            <asp:Label ID="Label1" Font-Size="Small" runat="server" Text='<%# Eval("User") %>' />
                            <table>
                                <tr>
                                    <td>
                                        <div style="border: 1px solid; background-color: #F0F8FF; padding: 10px; height: 50px;
                                            overflow: auto">
                                            <asp:Label ID="ComentLabel" runat="server" Text='<%# Eval("Coment") %>' />
                                        </div>
                                    </td>
                                    <td valign="top">
                                        <asp:ImageButton ID="imgbtn1" CommandName="Delete" runat="server" ImageUrl="~/trash16x16.gif" />
                                    </td>
                                </tr>
                            </table>
                            <br />
                        </span>
                    </ItemTemplate>
                </asp:ListView>

...

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="ModalPopupDemo.Comentario"
    SelectMethod="FindAll" TypeName="ModalPopupDemo.ComentarioDAO" DeleteMethod="Delete">
</asp:ObjectDataSource>

В целом мне нужно следующее:
- Пользователь может оставлять комментарии (...)
- У меня есть список с комментариями (строками) в вертикальной ориентации.
- При нажатии внешней кнопки появляется всплывающее окно Jquery с редактором wysiwyg.
- Когда это всплывающее окно закрыто, мне нужно сделать ajax-вызов на сервер, передающий содержимое редактора, и сохранить его в базе данных
- Затем список должен быть обновлен данными, введенными пользователем во всплывающем окне (ajax).
- Если авторизован автор комментария, рядом с комментарием должен появиться значок удаления
- Если щелкнуть, комментарий должен быть удален с помощью вызова ajax, удаления из базы данных и обновления списка.

Ну, а Listview - лучший подходящий для этого элемент управления? Должен ли я использовать HTML-таблицы с кодом JQuery?

Спасибо за ваше терпение и помощь С уважением, тони

1 Ответ

0 голосов
/ 05 августа 2011

Если я правильно вас понимаю, вы пытаетесь манипулировать ListView из пользовательского объекта DataSource, который вы создали?

Я собираюсь сделать здесь удар в темноте, но если вы пытаетесь удалить данные из источника данных с помощью вашего метода удаления, вам нужно будет повторно привязать ListView, чтобы отразить ваши изменения.Похоже, вы хотите отредактировать ListView из DataSource, что было бы своего рода обратным подходом.

Этого можно достичь, добавив свойство ListViewObject в свой класс DataSource и передав экземпляр экземпляра ListView, но было бы проще просто отредактировать DataSource и при необходимости заново привязать ListView.

Для кнопки удаления используйте CommandArgument для передачи индекса элемента (или другого идентификатора), а в событии OnItemCommand извлеките идентификатор из CommandArgument и удалите элемент из своего источника данных, используя идентификатор,После того, как элемент был удален из источника данных, перепривязайте ListView.

Помогает ли это, или я неправильно понимаю вашу потребность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...