【问题标题】:Access Listview instance from its DataSource c# class从其 DataSource c# 类访问 Listview 实例
【发布时间】:2011-08-09 16:05:11
【问题描述】:

我有一个 ListView 到绑定到名为 CommentsDAO 的 c# 类数据源的网页中。此类具有从 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>

总的来说,我需要以下内容:
- 用户可以制作 cmets (...)
- 我有一个带有垂直方向的 cmets(字符串)的列表视图。
- 当按下外部按钮时,将出现一个带有所见即所得编辑器的 Jquery 弹出窗口。
- 当此弹出窗口关闭时,我需要对服务器进行 ajax 调用,传递编辑器内容并将其保存到数据库中
- 然后列表视图必须使用用户在弹出窗口 (ajax) 中输入的数据进行更新。
- 如果评论的作者已登录,则评论旁边必须出现一个删除图标
- 如果单击,必须通过执行 ajax 调用、从数据库中删除和更新列表视图来删除评论。

那么,Listview 是最合适的控件吗? 我应该使用带有 jquery 代码的 html 表吗?

感谢您的耐心和帮助 问候, 托尼

【问题讨论】:

    标签: jquery asp.net html ajax listview


    【解决方案1】:

    如果我对您的理解正确,您是在尝试从您创建的自定义 DataSource 对象中操作 ListView 吗?

    我将在这里暗中尝试,但如果您尝试通过删除方法从 DataSource 中删除数据,则需要重新绑定 ListView 以反映您的更改。听起来您正在寻找从 DataSource 中编辑 ListView,这将是一种倒退的方法。

    您可以通过将 ListViewObject 属性添加到 DataSource 类并传入 ListView 的实例来实现此目的,但只需编辑 DataSource 并根据需要重新绑定 ListView 会更简单。

    对于删除按钮,使用 CommandArgument 传入项目的索引(或其他标识符),并在 OnItemCommand 事件中,从 CommandArgument 检索标识符并使​​用标识符从 DataSource 中删除项目。从 DataSource 中删除项目后,重新绑定 ListView。

    这有帮助吗,还是我误解了您的需求?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多