展会信息港展会大全

ASP.NET―001:GridView绑定List
来源:互联网   发布日期:2015-10-03 10:47:18   浏览:2686次  

导读:这篇文章主要介绍了ASP NET―GridView绑定List、页面返回值具体实现,需要的朋友可以参考下用惯了WPF的绑定,ASP NET的绑定貌似不是很好用。下面看看ASP NET绑定的用法。一般来说可以直接绑定DataTable的,不过我 ...

这篇文章主要介绍了ASP.NET―GridView绑定List、页面返回值具体实现,需要的朋友可以参考下

用惯了WPF的绑定,ASP.NET的绑定貌似不是很好用。下面看看ASP.NET绑定的用法。一般来说可以直接绑定DataTable的,不过我觉得绑定List比较符合面向对象编程。

绑定的方法是两句代码:

代码如下:

GridView名.DataSource = List<自定义类>;

GridView名.DataBind();

直接看例子吧,以下是一个绑定一个PersonModel类的例子。其中用到了页面返回参数,使用js传递,js可写在前端也可直接写在后台代码里。

项目结构:

ASP.NET―001:GridView绑定List 三联

效果:

26.jpg

实体类

代码如下:

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

}

}

针对绑定的aspx页面写一个管理类,用于操作数据

代码如下:

public class ChildFrmManager

{

private List<PersonModel> personCollect = new List<PersonModel>();

private static ChildFrmManager instance = null;

public List<PersonModel> PersonCollect

{

get { return personCollect; }

set { personCollect = value; }

}

public static ChildFrmManager DoGetInstance()

{

if (instance == null)

{

instance = new ChildFrmManager();

}

return instance;

}

public void DoAddPersons()

{

for (int i = 0; i < 20; i++)

{

PersonModel model = new PersonModel();

model.PersonIndex = i + 1;

model.PersonID = System.Guid.NewGuid().ToString();

model.PersonName = "测试" + i;

model.PersonAge = 27 + i;

model.PersonSex = i % 2 == 0 ? "男" : "女";

model.PersonSelected = false;

this.PersonCollect.Add(model);

}

}

}

绑定的页面前端

代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ChildFrm.aspx.cs" Inherits="ASPNetGridView.Pages.ChildFrm" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<<body id="MyBody" runat="server" ms_positioning="GridLayout">

<form id="Form1" runat="server" method="post">

<div>

<asp:GridView ID="dgPersons" runat="server" AutoGenerateColumns="False"

EnableViewState="false"

CellPadding="4"ForeColor="#333333" DataKeyNames="PersonID"

OnSelectedIndexChanged="Selcted_Click">

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

</html>

绑定页面后台

代码如下:

public partial class ChildFrm : System.Web.UI.Page

{

private ChildFrmManager dManager = null;

protected PersonModel selectItem = null;

protected void Page_Load(object sender, EventArgs e)

{

dManager = ChildFrmManager.DoGetInstance();

if (!IsPostBack)

{

dManager.DoAddPersons();

this.dgPersons.DataSource = dManager.PersonCollect;

this.dgPersons.DataBind();

}

}

protected void Selcted_Click(object sender, EventArgs e)

{

int selectIndex = this.dgPersons.SelectedIndex;

foreach (PersonModel mitem in dManager.PersonCollect)

{

if (mitem.PersonIndex - 1 == selectIndex)

{

mitem.PersonSelected = true;

}

else

{

mitem.PersonSelected = false;

}

}

selectItem = dManager.PersonCollect[selectIndex];

string vbCrLf = " ";

string strScript = "<script>" + vbCrLf;

strScript += "window.parent.returnValue='" + selectItem.PersonName + "';" + vbCrLf;

strScript += "window.parent.close();" + vbCrLf;

strScript += "</script>" + vbCrLf;

if (!IsClientScriptBlockRegistered("clientScript"))

{

RegisterClientScriptBlock("clientScript", strScript);

}

}

}

承载绑定页面的页面

复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FrameFrm.aspx.cs" Inherits="ASPNetGridView.Pages.FrameFrm" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<frameset rows="0,*">

<frame src="about:blank">

<frame src="ChildFrm.aspx">

</frameset>

</html>

主页面,获取返回值的js在前端

复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ASPNetGridView._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<div align="center">

<form id="Form1" runat="server" method="post">

<table runat="server">

<tr>

<td>

<asp:Label ID="Label1" runat="server" Font-Bold="true">选择结果</asp:Label>

</td>

<td>

<asp:TextBox ID="txtShowReturnValue" runat="server" Width="100px" />

</td>

<td>

<asp:Button ID="btnOpenNewFrm" runat="server" Text="选择" Width="60px" OnClientClick="OpenNewWindow()"/>

</td>

</tr>

</table>

</form>

</div>

</body>

<script type ='text/javascript'>

function OpenNewWindow() {

var str = window.showModalDialog('Pages/FrameFrm.aspx', document.Form1.txtShowReturnValue.value, 'dialogWidth=1000px;dialogHeight=900px', 'scroll:yes');

if (str != null)

{ document.Form1.txtShowReturnValue.value = str; }

}

</script>

</html>

赞助本站

人工智能实验室

相关热词: GridView ASP NET

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港