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;
        }
    }

  • 相关阅读:
    EF 关系规则(一对一、一对多、多对多...)
    EF框架中加子类后出现列名 'Discriminator' 无效问题
    .net下Ueditor配置(主要讲解上传功能配置)
    同构数查找程序的优化过程 Anthony
    Effective STL 条款17 Anthony
    C 语言中的数组类型和数组指针类型. Anthony
    Effective STL 条款18 Anthony
    RDLC之自定義數據集二
    给Calendar添加标签
    Profile学习
  • 原文地址:https://www.cnblogs.com/hateyoucode/p/1362796.html
Copyright © 2011-2022 走看看