zoukankan      html  css  js  c++  java
  • 动态生成DataTable绑定至DataList一例

    Default.aspx:

    程序代码 程序代码
    <asp:DataList ID="DataList1" runat="server" OnCancelCommand="DataList1_Cancel" OnDeleteCommand="DataList1_Delete" OnEditCommand="DataList1_Edit" OnUpdateCommand="DataList1_Update" DataKeyField="ID">
        <ItemTemplate>
            <div style="background-color:Red;"><%# Eval("id")%>,<%# Eval("sitename")%>,<%# Eval("url")%><asp:Button ID="Button1" CommandName="edit" runat="server"
                    Text="Edit" /><asp:Button ID="Button2" CommandName="delete" runat="server" Text="Delete" /></div>
        </ItemTemplate>
        <SeparatorTemplate>
            <hr style="height:1px;" />
        </SeparatorTemplate>
        <EditItemTemplate>
            <div><asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("sitename") %>'></asp:TextBox><asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("url") %>'></asp:TextBox>
                <asp:Button
                    ID="Button7" CommandName="update" runat="server" Text="Update" /><asp:Button ID="Button8" CommandName="cancel" runat="server"
                        Text="Cancel" /></div>
        </EditItemTemplate>
    </asp:DataList>


    Default.aspx.cs:

    程序代码 程序代码
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                DataColumn dc;
                DataRow dr;

                //---------------------添加字段----------------

                //建立字段1
                dc = new DataColumn();
                dc.DataType = System.Type.GetType("System.Int32");
                dc.ColumnName = "id";
                dc.AutoIncrement = true;//标识
                dc.AutoIncrementSeed = 1;//标识种子
                dc.AutoIncrementStep = 1;//标识递增量
                dt.Columns.Add(dc);
                //建立字段2
                dc = new DataColumn();
                dc.DataType = System.Type.GetType("System.String");
                dc.ColumnName = "sitename";
                dc.AllowDBNull = true;
                dt.Columns.Add(dc);
                //建立字段3
                dc = new DataColumn();
                dc.DataType = System.Type.GetType("System.String");
                dc.ColumnName = "url";
                dc.AllowDBNull = true;
                dt.Columns.Add(dc);
                //设置主键
                DataColumn[] newdc = new DataColumn[1];//可设置多个字段为主键
                newdc[0] = dt.Columns["id"];
                dt.PrimaryKey = newdc;

                //---------------------添加记录----------------

                //记录1
                dr = dt.NewRow();
                dr["sitename"] = "尚网";
                dr["url"] = "http://www.jjshang.com/";
                dt.Rows.Add(dr);
                //记录2
                dr = dt.NewRow();
                dr["sitename"] = "木子屋";
                dr["url"] = "http://www.mzwu.com/";
                dt.Rows.Add(dr);
                //记录3
                dr = dt.NewRow();
                dr["sitename"] = "网易";
                dr["url"] = "http://www.126.com/";
                dt.Rows.Add(dr);

                //----把表添加到DataSet并绑定到DataList----
                ds.Tables.Add(dt);
                ds.Tables[0].TableName = "HomePage";
                Session["ds"] = ds;
                BindData();
            }
        }
        private void BindData()
        {
            ((DataSet)Session["ds"]).Tables["HomePage"].DefaultView.Sort = "id desc";
            DataList1.DataSource = ((DataSet)Session["ds"]).Tables["HomePage"].DefaultView;
            DataList1.DataBind();
        }
        protected void DataList1_Cancel(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = -1;
            BindData();
        }
        protected void DataList1_Delete(object source, DataListCommandEventArgs e)
        {
            int id = (int)DataList1.DataKeys[e.Item.ItemIndex];

            DataRow dr = ((DataSet)Session["ds"]).Tables["HomePage"].Rows[GetRow(id)];
            dr.Delete();

            DataList1.EditItemIndex = -1;
            BindData();
        }
        protected void DataList1_Edit(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;
            BindData();
        }
        protected void DataList1_Update(object source, DataListCommandEventArgs e)
        {
            string sitename = ((TextBox)e.Item.FindControl("TextBox1")).Text;
            string url = ((TextBox)e.Item.FindControl("TextBox2")).Text;
            int id = (int)DataList1.DataKeys[e.Item.ItemIndex];

            DataRow dr = ((DataSet)Session["ds"]).Tables["HomePage"].Rows[GetRow(id)];
            dr["sitename"] = sitename;
            dr["url"] = url;

            DataList1.EditItemIndex = -1;
            BindData();
        }
        private int GetRow(int id)
        {
            DataRow dr;
            for (int i = 0; i < ((DataSet)Session["ds"]).Tables["HomePage"].Rows.Count; i++)
            {
                dr = ((DataSet)Session["ds"]).Tables["HomePage"].Rows[i];
                if ((int)dr["id"] == id) return i;
            }
            return 0;
        }
    }

  • 相关阅读:
    sed替换
    【工作提升】好员工秘诀十二条
    【工作提升】怎么样做工作才有好的效果
    vim删除空行和注释
    Java实现几种常见排序方法
    数据背后的二八定律,揭示程序员担忧的主要问题
    【新闻】国内第一本介绍程序员996现象的技术图书上市,“再谈工作996,生病ICU”一文受关注
    10年磨一剑:《SOD框架“企业级”应用数据架构实战》一书正式上市
    程序员肺被切掉一块还得去加班... 再谈“工作996,生病ICU”
    win10编译pdfium
  • 原文地址:https://www.cnblogs.com/hateyoucode/p/1362796.html
Copyright © 2011-2022 走看看