ASP.NET―001:GridView綁定List、頁面返回值具體實現(xiàn)
用慣了WPF的綁定,ASP.NET的綁定貌似不是很好用。下面看看ASP.NET綁定的用法。一般來說可以直接綁定DataTable的,不過我覺得綁定List比較符合面向?qū)ο缶幊獭?BR>綁定的方法是兩句代碼:
GridView名.DataSource = List<自定義類>;
GridView名.DataBind();
直接看例子吧,以下是一個綁定一個PersonModel類的例子。其中用到了頁面返回參數(shù),使用js傳遞,js可寫在前端也可直接寫在后臺代碼里。
項目結(jié)構(gòu):
效果:
實體類
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頁面寫一個管理類,用于操作數(shù)據(jù)
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">選擇結(jié)果</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>
- asp.net gridview列寬固定的幾種方法介紹
- ASP.NET中的DataGridView綁定數(shù)據(jù)和選中行刪除功能具體實例
- asp.net讀取excel中的數(shù)據(jù)并綁定在gridview
- asp.net遍歷文件夾下所有子文件夾并綁定到gridview上的方法
- ASP.NET4 GridView的四種排序樣式詳解
- asp.net中的GridView分頁問題
- ASP.NET使用GridView導(dǎo)出Excel實現(xiàn)方法
- asp.net gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁
- ASP.NET使用gridview獲取當(dāng)前行的索引值
- ASP.NET中為GridView添加刪除提示框的方法
- asp.net中GridView數(shù)據(jù)鼠標(biāo)移入顯示提示信息
- 如何用jQuery實現(xiàn)ASP.NET GridView折疊伸展效果
相關(guān)文章
asp.net創(chuàng)建位圖生成驗證圖片類(驗證碼類)
本文提供一個asp.net生成驗證圖片的類,功能是顯示簡單的字符串,大家參考使用吧2014-01-01Asp.net靜態(tài)方法之Grid轉(zhuǎn)DataTable方法實現(xiàn)步驟
GridView綁定DataTable后,如何獲取GridView綁定后顯示的值,在項目需求的背景下寫了一個靜態(tài)方法,經(jīng)過在項目中的使用,bug的修復(fù),較為穩(wěn)定2013-04-04Asp.net中的數(shù)據(jù)綁定Eval和Bind應(yīng)用示例
這篇文章主要介紹了Asp.net中的數(shù)據(jù)綁定Eval和Bind的應(yīng)用,需要的朋友可以參考下2014-05-05asp.net用url重寫URLReWriter實現(xiàn)任意二級域名 高級篇
Asp.net 用url重寫(URLReWriter)實現(xiàn)任意二級域名,需要的朋友可以參考下,建議先看一下上一篇文章。2009-11-11asp.net DZ論壇中根據(jù)IP地址取得所在地的代碼
從dz .net版發(fā)現(xiàn)的這個不錯的函數(shù),大家以后就可以方便調(diào)用了2008-10-10關(guān)于DDD:管理"工作單元實例"的兩種模式的使用方法
本篇文章介紹了,關(guān)于DDD:管理"工作單元實例"的兩種模式的使用方法。需要的朋友參考下2013-04-04ASP.NET用DataSet導(dǎo)出到Excel的方法
ASP.NET用DataSet導(dǎo)出到Excel的方法,需要的朋友可以參考一下2013-03-03