DataList

结构跟Repeater很相似 多出一组EditItemTemplate项

在一下例子中使用CommandName属性指向某一个事件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:DataList ID="DataList1" runat="server" OnSelectedIndexChanged="DataList1_SelectedIndexChanged" OnEditCommand="DataList1_EditCommand" OnDeleteCommand="DataList1_DeleteCommand">
            <HeaderTemplate>
                <table style="width:900px;background-color:#ffffcc"><tr>
                    <td width="25%">姓名</td>
                    <td>性别</td>
                    <td>电话</td>
                    <td>操作</td>
                </tr></table>
            </HeaderTemplate>

            <ItemTemplate>
                <table style="width:900px;background-color:#ffffcc"><tr>
                    <td width="25%">
                        <asp:Label ID="Label1" runat="server" Text='<%#Eval("code") %>'></asp:Label></td>
                    <td width="25%"><%#Eval("name") %></td>
                    <td width="25%"><%#Eval("tel") %></td>
                    <td width="25%">
                        <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Edit">编辑</asp:LinkButton>
                        <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Delete">删除</asp:LinkButton>
                        
                    </td>
                </tr></table>
            </ItemTemplate>

            <EditItemTemplate>
                <table style="width:900px;background-color:#ffffcc"><tr>
                    <td width="25%">
                        <asp:TextBox ID="txtname" runat="server" Text='<%#Eval("name") %>'></asp:TextBox></td>
                    <td width="25%">
                        <asp:TextBox ID="txtsex" runat="server" Text='<%#Eval("sex") %>'></asp:TextBox></td>
                    <td width="25%">
                        <asp:TextBox ID="txttel" runat="server" Text='<%#Eval("tel") %>'></asp:TextBox></td>
                    <td width="25%"><asp:LinkButton ID="LinkButton1" runat="server">更新</asp:LinkButton>
                        <asp:LinkButton ID="LinkButton2" runat="server">取消</asp:LinkButton></td>
                </tr></table>
            </EditItemTemplate>
            <FooterTemplate></FooterTemplate>
        </asp:DataList>
    
    </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Index : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataList1.DataSource = new TelBF().Select();
            DataList1.DataBind();
        }
    }


    protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {
        //选中改行的索引
        DataList1.EditItemIndex = e.Item.ItemIndex;//EditItemTemplate项默认索引为-1时隐藏该项
        //重新绑定数据
        DataList1.DataSource = new TelBF().Select();
        DataList1.DataBind();
    }
    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    {
        Label la = (Label)e.Item.FindControl("Label1");
        string s = la.Text;
        new TelBF().Delete(s);
        DataList1.DataSource = new TelBF().Select();
        DataList1.DataBind();
    }
}

 

转载于:https://www.cnblogs.com/happinesshappy/p/4698513.html

在ASP.NET Web Forms中,`DataList` 是一个用于动态绑定和呈现数据的强大工具。如果你有一个名为 `DataList dataList;` 的变量,你可以这样使用它来创建和显示嵌套的数据结构: 1. **创建并配置DataList**[^1]: ```csharp // 假设你有从数据库或数据源获取的数据集合 var dataSource = GetNestedDataSource(); // 创建DataList DataList nestedDataList = new DataList(); nestedDataList.DataSource = dataSource; // 内部DataList的配置示例 foreach (var item in dataSource) { DataList innerList = new DataList(); innerList.DataTextField = "InnerField"; innerList.DataValueField = "InnerKey"; // 添加到外部DataList的ItemTemplate nestedDataList.Items.Add(new ListItem() { Text = item.OuterField, Value = item.OuterKey, Controls = { innerList } }); } // 将DataList添加到页面上 PlaceHolder.Controls.Add(nestedDataList); ``` 2. **jQuery Datalist示例**[^2]: 虽然这是关于HTML5的Datalist,但在jQuery插件的帮助下,可以在Web应用中实现相似的功能。假设你已经包含了jQuery和相应的插件,可以这样做: ```html <input type="text" id="myInput" list="options"> <datalist id="options"> <!-- 通过JavaScript填充这些选项 --> </datalist> <script> $('#myInput').datalist({ source: function(request, response) { $.ajax({ url: '/GetOptions', data: { term: request.term }, success: function(data) { response($.map(data, function(item) { return { label: item.Label, value: item.Value }; })); } }); } }); </script> ``` 这里,`/GetOptions` 是一个服务器端API,返回与用户输入匹配的选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值