生活随笔
收集整理的這篇文章主要介紹了
ASP.NET—001:GridView绑定List、页面返回值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用慣了WPF的綁定,ASP.NET的綁定貌似不是很好用。下面看看ASP.NET綁定的用法。一般來說可以直接綁定DataTable的,不過我覺得綁定List比較符合面向對象編程。
綁定的方法是兩句代碼:
GridView名.DataSource = List<自定義類>;GridView名.DataBind();
直接看例子吧,以下是一個綁定一個PersonModel類的例子。其中用到了頁面返回參數,使用js傳遞,js可寫在前端也可直接寫在后臺代碼里。項目結構:效果:實體類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>
代碼下載
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的ASP.NET—001:GridView绑定List、页面返回值的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。