asp.net - 在 ASP.NET 的 ListView 中创建自定义按钮

标签 asp.net listview sqldatasource

我有一个 Results.aspx 页面,它显示通过 ListView 使用 SqlDataSource 对象查询的结果记录。我想添加一个“查看”按钮,该按钮将显示在每条记录旁边,单击后将进入一个单独的页面,该页面将显示有关该记录的详细信息。我该如何实现这个目标?

编辑

我已经尝试过你所说的,香茅,这就是我的想法:

<td>
    <asp:CheckBox ID="CheckBox1" runat="server" />
</td>
<td>
    <asp:LinkButton ID="LinkButton1" runat="server" CommandName="ViewButtonClick" CommandArgument='<%# Eval("ServiceId") %>'>View</asp:LinkButton>
</td>

这是我想要调用的方法:

protected void ViewButtonClick(object sender, CommandEventArgs e)
    {
        var serviceId = Convert.ToInt32(e.CommandArgument);

        ServiceToView = DataAccessLayer.Service.Select(new Service { ServiceId = serviceId });
        Server.Transfer("~/ViewService.aspx");
    }

不幸的是,实际上什么也没发生......我错过了什么吗?

编辑——已修复

我错过了一些东西!我的 CommandName 等于我的方法名称,而不是 OnCommand。我取出 CommandName,保留参数位并将 CommandName 替换为 OnCommand。现在一切正常,但我需要 CommandName 做什么?

最佳答案

您可以将 LinkBut​​ton 添加到 ListView 的 ItemTemplate 中。
将标识每条记录的值绑定(bind)到 LinkBut​​ton 的 CommandArgument。
订阅 LinkBut​​ton 的命令事件。在那里您可以访问 CommandEventArgs.CommandArgument

关于asp.net - 在 ASP.NET 的 ListView 中创建自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5101136/

相关文章:

c# - 我如何确定 window.onunload 中的 PostBack 值?

asp.net - 为什么我的 CommandArgument 为空?

mysql - 我无法将 MySql 数据提供程序添加到 Visual Studio 2012

c# - DataBind事件发生后如何捕捉异常?

c# - 删除 ASP.Net 下拉 SelectedIndexChanged 不起作用

asp.net - 管理站点作为 ASP.NET 站点内的文件夹

javascript - 当内容未经编辑时,从 Summernote 表单中获取正确的 HTML

Android OnItemClickListener 不起作用

android - 如何在警报对话框中扩充包含 ListView 的布局?

html - SQL 按日期显示每个任务的最新记录