ASP.NET—002:GridView手动增加一行

来源:互联网 发布:淘宝宝贝发布规则 编辑:程序博客网 时间:2024/06/15 21:16
ASP.NET中的gridview如何增加一行呢,下面介绍一种最简单的方式。
只使用后台的数据,在后台的datatable或者list增加一项,然后重新绑定gridview。
直接看代码
效果:

实体类
public class PersonModel    {        private int personIndex;        public int PersonIndex        {            get { return personIndex; }            set { personIndex = value; }        }        private string personID;        public string PersonID        {            get { return personID; }            set { personID = value; }        }        private string personName;        public string PersonName        {            get { return personName; }            set { personName = value; }        }        private string personSex;        public string PersonSex        {            get { return personSex; }            set { personSex = value; }        }        private int personAge;        public int PersonAge        {            get { return personAge; }            set { personAge = value; }        }        private bool personSelected = false;        public bool PersonSelected        {            get { return personSelected; }            set { personSelected = value; }        }    }


页面管理类
public class MainManager    {        private int sIndex = 0;        private List<PersonModel> personCollect = new List<PersonModel>();        private static MainManager instance = null;        public List<PersonModel> PersonCollect        {            get { return personCollect; }            set { personCollect = value; }        }        public static MainManager DoGetInstance()        {            if (instance == null)            {                instance = new MainManager();            }            return instance;        }        public void DoAddSinglePersons()        {            sIndex = this.PersonCollect.Count;            PersonModel model = new PersonModel();            model.PersonIndex = sIndex;            model.PersonID = System.Guid.NewGuid().ToString();            model.PersonName = "测试" + sIndex;            model.PersonAge = 17 + sIndex;            model.PersonSex = sIndex % 2 == 0 ? "男" : "女";            model.PersonSelected = false;            this.PersonCollect.Add(model);        }    }


前台
<head runat="server">    <title></title></head><body id="MyBody" runat="server" ms_positioning="GridLayout">    <form id="Form1" runat="server" method="post">    <div>    <asp:Button ID="btnAdd" runat="server" OnClick="AddItem_Click" Text="增加" />    <asp:GridView ID="dgPersons" runat="server" AutoGenerateColumns="False"      EnableViewState="false"    CellPadding="4"  ForeColor="#333333" DataKeyNames="PersonID">     <Columns>       <asp:CommandField ShowSelectButton="True" />         <asp:BoundField DataField="PersonIndex" HeaderText="序号"/>       <asp:TemplateField>       <ItemTemplate>       <input id="radiobutton1" name="pselect" type="radio" />       </ItemTemplate>       </asp:TemplateField>       <asp:BoundField DataField="PersonName" HeaderText="姓名" />       <asp:BoundField DataField="PersonAge" HeaderText="年龄" />       <asp:BoundField DataField="PersonSex" HeaderText="性别" />     </Columns>        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />            <EditRowStyle BackColor="#999999" />            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />                </asp:GridView>    </div>    </form></body>


后台
public partial class _Default : System.Web.UI.Page    {        private MainManager dManager = null;        protected PersonModel selectItem = null;        protected void Page_Load(object sender, EventArgs e)        {            dManager = MainManager.DoGetInstance();            if (!IsPostBack)            {                dManager.DoAddSinglePersons();                this.dgPersons.DataSource = dManager.PersonCollect;                this.dgPersons.DataBind();            }        }        protected void AddItem_Click(object sender, EventArgs e)        {            dManager.DoAddSinglePersons();            this.dgPersons.DataSource = dManager.PersonCollect;            this.dgPersons.DataBind();        }    }
如果一行中有其他list控件比如 下拉列表asp:DropDownList,那么在实体中增加一个list,对应下拉列表的绑定。而且对于每一行的点击,选择等操作都要写相应的事件修改数据,下一次绑定时要将list中的数据修改成操作过的值或状态,再进行绑定。
当然一般来说,使用js增加比较正规一些,下一篇来介绍。
 代码下载
 
3 0
原创粉丝点击