- 浏览: 897924 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
chienchia:
请问下,第4步,vpn做了什么使数据包发送到真实网卡,而不会再 ...
如何使用Android系统自带的VPN服务框架 -
fangyafenqidai:
我只要选第二个就可以呢,怒需要选第一个。之后不会有啥问题。正常 ...
Android Studio 超级简单的打包生成apk -
michaelye1988:
不错,很棒!
getcachedir和getexternalcachedir的区别 -
whlei01:
文章棒棒哒
常用的AS3代码 -
whlei01:
很不错 之前打开及时600M的内存 ,现在打开只有300兆了 ...
flash builder内存不够的解决办法
ASP.NET3.5中包含了新的数据绑定控件--ListView,这是一个类似与repeater与gridview结合的控件,可以实现添加,删除功能,同时还可以像repeater一样灵活的控制页面的布局。该控件包含了很多新的模板,比如GroupTemplate等新增的模板,可以方便的分组显示数据。详细的大家可以去查MSDN文档。
我一直认为学习数据绑定控件从最简单的增删改查开始,可以对该控件有较深刻的理解,这样可以举一反三,在进行综合运用。今天这篇文章还是从最基本的数据操作开始,对ListView有个感性的认识。
页面源码:
这部分代码中有个重要的部分就是通过<LayoutTemplate>模板来设置控件的样式,布局,这也是新增的模板。在VS.NET2008的正式版本中,要正常运行页面必须在该模板中加入一个名为itemPlaceholder的PlaceHolder控件。要不会出现如下异常:
An item placeholder must be specified on ListView 'ListView1'. Specify an item placeholder by setting a control's ID property to "itemPlaceholder".
<ItemTemplate>模板用来绑定显示到页面上的数据, <EditItemTemplate>用来显示处于编辑状态的时候显示的数据,其他的可以以此类推。
与ListView还搭配的一起使用了新增的DataPager控件,这个主要是用于ListView控件的分页,是新增的分页空也,可以方便,高效的进行分页。
后台代码:
以前的edit_cancel事件在ListView控件中为item_cancel,在该事件中可以判断是取消编辑还是取消插入新的数据。大家可以看代码。本篇文章主要是对ListView控件一些基本的事件的运用。下一篇会继续深入的学习该控件。
我一直认为学习数据绑定控件从最简单的增删改查开始,可以对该控件有较深刻的理解,这样可以举一反三,在进行综合运用。今天这篇文章还是从最基本的数据操作开始,对ListView有个感性的认识。
页面源码:
<asp:ListView ID="ListView1" runat="server" OnSelectedIndexChanging="ListView1_SelectedIndexChanging" OnItemCommand="ListView1_ItemCommand" OnItemEditing="ListView1_ItemEditing" OnItemCanceling="ListView1_ItemCanceling" OnItemDataBound="ListView1_ItemDataBound" OnPagePropertiesChanging="ListView1_PagePropertiesChanging" OnItemInserting="ListView1_ItemInserting" OnItemUpdating="ListView1_ItemUpdating" OnSorting="ListView1_Sorting" EnableViewState="true" InsertItemPosition="LastItem" onitemdeleting="ListView1_ItemDeleting"> <LayoutTemplate> <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder> <p> <asp:DataPager ID="MyPage" runat="server" PageSize="6"> <Fields> <asp:NumericPagerField ButtonCount="10" PreviousPageText="<-- " NextPageText="-->" /> <%...-- <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="true" ShowLastPageButton="true" ShowNextPageButton="true" ShowPreviousPageButton="true" />--%> </Fields> </asp:DataPager> </p> </LayoutTemplate> <ItemTemplate> <i> <%...#Eval("SupplierID")%></i> <p> <b> <%...#Eval("CompanyName")%></b></p> <p> <%...#Eval("ContactName")%></p> <p> <%...#Eval("Address")%></p> <p> <%...#Eval("City")%></p> <asp:Button ID="btnEdit" runat="server" Text="Edit" CommandName="Edit" /> <asp:Button ID="btnDelete" runat="server" Text="Delete" CommandName="Delete" /> <%...-- <asp:LinkButton ID="lbtnSort" runat="server" Text="Sort" CommandName="Sort" CommandArgument="CompanyName" ></asp:LinkButton>--%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtMy" runat="server" Text='<%#bind("SupplierID") %>'></asp:TextBox> <asp:TextBox ID="TextBox1" runat="server" Text='<%#bind("CompanyName") %>'></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server" Text='<%#bind("ContactName") %>'></asp:TextBox> <asp:TextBox ID="TextBox3" runat="server" Text='<%#bind("Address") %>'></asp:TextBox> <asp:TextBox ID="TextBox4" runat="server" Text='<%#bind("City") %>'></asp:TextBox> <asp:Button ID="btnUpdate" runat="server" Text="Update" CommandName="Update" /> <asp:Button ID="btnCancle" runat="server" Text="Cancle" CommandName="Cancel" /> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="txtMy" runat="server" Text='<%#bind("SupplierID") %>'></asp:TextBox> <asp:TextBox ID="TextBox1" runat="server" Text='<%#bind("CompanyName") %>'></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server" Text='<%#bind("ContactName") %>'></asp:TextBox> <asp:TextBox ID="TextBox3" runat="server" Text='<%#bind("Address") %>'></asp:TextBox> <asp:TextBox ID="TextBox4" runat="server" Text='<%#bind("City") %>'></asp:TextBox> <asp:Button ID="btnUpdate" runat="server" Text="Insert" CommandName="Insert" /> <asp:Button ID="btnCancle" runat="server" Text="Cancle" CommandName="Cancel" /> </InsertItemTemplate> <ItemSeparatorTemplate> <div style="height: 0px; border-top: dashed 1px #ff0000"> </div> </ItemSeparatorTemplate> </asp:ListView>
这部分代码中有个重要的部分就是通过<LayoutTemplate>模板来设置控件的样式,布局,这也是新增的模板。在VS.NET2008的正式版本中,要正常运行页面必须在该模板中加入一个名为itemPlaceholder的PlaceHolder控件。要不会出现如下异常:
An item placeholder must be specified on ListView 'ListView1'. Specify an item placeholder by setting a control's ID property to "itemPlaceholder".
<ItemTemplate>模板用来绑定显示到页面上的数据, <EditItemTemplate>用来显示处于编辑状态的时候显示的数据,其他的可以以此类推。
与ListView还搭配的一起使用了新增的DataPager控件,这个主要是用于ListView控件的分页,是新增的分页空也,可以方便,高效的进行分页。
后台代码:
string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; protected void Page_Load(object sender, EventArgs e) ...{ if (!IsPostBack) ...{ ViewState["SupplierID"] = "SupplierID"; ViewState["Direction"] = "DESC"; BindListView(); } } private void BindListView() ...{ string QueryCon = "SELECT SupplierID,CompanyName,ContactName,Address,City FROM Suppliers"; SqlConnection NorthWindCon = new SqlConnection(ConStr); SqlDataAdapter NorthWindDa = new SqlDataAdapter(QueryCon, ConStr); DataSet Ds = new DataSet(); NorthWindDa.Fill(Ds, "Suppliers"); ListView1.DataKeyNames = new string[] ...{ "SupplierID" }; DataView Dv = Ds.Tables["Suppliers"].DefaultView; //排序表达式 string SortExpress = (string)ViewState["SupplierID"] + " " + (string)ViewState["Direction"]; Dv.Sort = SortExpress; //绑定数据源 //ListView1.DataSource = Ds.Tables["Suppliers"]; ListView1.DataSource = Dv; ListView1.DataBind(); } protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e) ...{ ListView1.EditIndex = e.NewEditIndex; BindListView(); } protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) ...{ if (e.Item.ItemType == ListViewItemType.DataItem) ...{ ((Button)e.Item.FindControl("btnDelete")).Attributes["onclick"] = "if(!confirm('你真的要删除这条记录么?'))return false;"; } } protected void ListView1_ItemCanceling(object sender, ListViewCancelEventArgs e) ...{ //取消编辑 if (e.CancelMode == ListViewCancelMode.CancelingEdit) ...{ //e.Cancel = true; ListView1.EditIndex = -1; BindListView(); ShowMessage("取消编辑"); } else if (e.CancelMode == ListViewCancelMode.CancelingInsert) ...{ //BindListView(); return; } } protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e) ...{ ((TextBox)ListView1.InsertItem.FindControl("txtMy")).ReadOnly = true; string CompanyName = Server.HtmlEncode(((TextBox)ListView1.InsertItem.FindControl("TextBox1")).Text.ToString()); string ContactName = Server.HtmlEncode(((TextBox)ListView1.InsertItem.FindControl("TextBox2")).Text.ToString()); string Address = Server.HtmlEncode(((TextBox)ListView1.InsertItem.FindControl("TextBox3")).Text.ToString()); string City = Server.HtmlEncode(((TextBox)ListView1.InsertItem.FindControl("TextBox4")).Text.ToString()); string InsertQuery = "INSERT INTO Suppliers (CompanyName,ContactName,Address,City) VALUES ('" + CompanyName + "','" + ContactName + "','" + Address + "','" + City + "')"; SqlConnection InsertCon = new SqlConnection(ConStr); SqlCommand InsertCmd = new SqlCommand(InsertQuery, InsertCon); try ...{ InsertCon.Open(); InsertCmd.ExecuteNonQuery(); BindListView(); //将插入行显示到最后 ListView1.InsertItemPosition = InsertItemPosition.LastItem; } catch ...{ ShowMessage("插入新数据出错,请重新输入"); } finally ...{ InsertCon.Dispose(); InsertCmd.Dispose(); } } protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e) ...{ string KeyId = ListView1.DataKeys[e.ItemIndex].Value.ToString(); //找到listview改行的数据集合 string CompanyName = Server.HtmlEncode(((TextBox)ListView1.Items[e.ItemIndex].FindControl("TextBox1")).Text.ToString()); string ContactName = Server.HtmlEncode(((TextBox)ListView1.Items[e.ItemIndex].FindControl("TextBox2")).Text.ToString()); string Address = Server.HtmlEncode(((TextBox)ListView1.Items[e.ItemIndex].FindControl("TextBox3")).Text.ToString()); string City = Server.HtmlEncode(((TextBox)ListView1.Items[e.ItemIndex].FindControl("TextBox4")).Text.ToString()); string UpdateStr = "UPDATE Suppliers SET CompanyName='" + CompanyName + "',ContactName='" + ContactName + "'," + "Address='" + Address + "',City='" + City + " 'WHERE SupplierID='" + KeyId + "' "; SqlConnection UpdateCon = new SqlConnection(ConStr); SqlCommand UpdateCmd = new SqlCommand(UpdateStr, UpdateCon); try ...{ UpdateCon.Open(); UpdateCmd.ExecuteNonQuery(); ListView1.EditIndex = -1; BindListView(); } catch ...{ ShowMessage("更新出错,请重新编辑"); } finally ...{ UpdateCon.Dispose(); UpdateCmd.Dispose(); } } protected void ListView1_Sorting(object sender, ListViewSortEventArgs e) ...{ if (ViewState["SupplierID"].ToString() == e.SortExpression) ...{ if (ViewState["Direction"].ToString() == "DESC") ...{ ViewState["Direction"] = "ASC"; } else ...{ ViewState["Direction"] = "DESC"; } } else ...{ ViewState["SupplierID"] = e.SortExpression; } BindListView(); } private void ShowMessage(string Message) ...{ Literal TxtMsg = new Literal(); TxtMsg.Text = "<script>alert('" + Message + "')</script>"; Page.Controls.Add(TxtMsg); } protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e) ...{ string KeyID = ListView1.DataKeys[e.ItemIndex].Value.ToString(); string DeleteStr = "DELETE FROM Suppliers WHERE SupplierID='" + KeyID + "'"; SqlConnection DeleteCon = new SqlConnection(ConStr); SqlCommand DeleteCmd = new SqlCommand(DeleteStr, DeleteCon); try ...{ DeleteCon.Open(); DeleteCmd.ExecuteNonQuery(); BindListView(); ShowMessage("删除成功"); } catch ...{ ShowMessage("删除出错,请检查数据是否有关联"); } finally ...{ DeleteCon.Dispose(); DeleteCmd.Dispose(); } }
以前的edit_cancel事件在ListView控件中为item_cancel,在该事件中可以判断是取消编辑还是取消插入新的数据。大家可以看代码。本篇文章主要是对ListView控件一些基本的事件的运用。下一篇会继续深入的学习该控件。
发表评论
-
Request、Request.Form和Request.QueryString的区别
2012-08-13 14:46 1333Request、Request.Form和Request.Q ... -
大型软件公司.net面试题!一定得看(附答案)
2010-01-14 14:23 1665引用 1、答案 a=a+b; b=a-b; a=a ... -
.net面试整试题及参考答案【转】
2010-01-14 14:01 2302引用 一、ADO 与ADO.NET两 ... -
最新的.Net面试题及答案
2010-01-14 13:52 4192引用 最新的.Net面试题及答案 1.a=10,b=15,在不 ... -
NET面试题集
2010-01-12 16:48 2342引用 NET面试题集2009-08-2 ... -
如何记住密码?
2010-01-11 17:00 1285封装一个类,里面两个方法,一个是写,一个是读,直接调用即可 ... -
怎样在GridView中的DropDownList选项改变的时候获取GridView中的DataKeys.Value的二种方法:
2010-01-10 19:41 3446【1】 <asp:GridView ID="G ... -
Gridview中用删除一行的问题
2010-01-10 19:39 1631html代码如下: <asp:templatefie ... -
通过Visual studio 2005 中的web.sitemap实现OUTLOOK风格的系统菜单
2010-01-10 18:26 2063Visual Studio 开发工具提供的一些功能让开发变得更 ... -
Repeater分页
2010-01-10 18:06 2475private void Page_Load(ob ... -
单击头模板中的checkbox,实现datalist中所有chebox的全选和取消
2010-01-10 17:48 1847使用C#和javascript都可以实现,第二种更好一些, ... -
GridView 如何获取当前行的索引值
2010-01-10 16:10 7198引用 在用GridView控件时,我们经常会碰到获取当前行的索 ... -
DataGrid和DropDownList的一些配合以及使用css定制DataGrid
2010-01-10 16:06 1427引用 有的时候我们需要 (1)在编辑的时候用下拉框选择,并且默 ... -
[ASP] asp日期函数大全
2010-01-09 16:18 27831. Now 传回系统的日期及 ... -
ASP.net随机数应用实例
2010-01-09 16:15 1059大家可能都用过Chinaren的校友录,不久前它的留言簿上加 ... -
3种方式遍历Repeater中的CheckBox全选
2010-01-09 16:14 1754方式1 引用 1 foreach (Control c in ... -
[ASP.NET2.0]Repeater C# 分页用法
2010-01-09 16:03 2841二、Web.config配置 1 <ap ... -
(摘抄)为什么设置了DropDownList的AutoPostBack="True"还是不能触发SelectedIndexChanged事件?
2010-01-09 16:01 4257曾经遇到过这个问题,后来在LoveCherry的博客中找到了更 ...
相关推荐
ListView 是 Android 中最常用的控件之一,用于显示列表数据,但是当我们需要对列表数据进行增删改查操作时,需要了解 Android 中的 ListView 数据增删改查机制。 ListView 数据增删改查机制 在 Android 中,对 ...
Android+SQlite 简单的《学生信息管理系统》(实现基本增删改查) 此代码中还有与其相对应的apk文件(在SIMS/bin目录中),大家可先行放手机上看一下效果。 希望对初学者有一定的帮助。(本人自己编写)
ListView是Android平台上常见的一种...掌握好ListView的增删改查操作,能够有效地提升用户体验,同时也能为复杂的界面设计打下坚实的基础。在实际开发中,还需要考虑性能优化和用户体验,使ListView更加高效、易用。
在C#编程中,ListView控件是一个非常常用的组件,它允许开发者在窗口或者对话框上显示数据列表。这个控件可以展示多列数据,并且支持多种操作,如增删、选择和排序。在这个实例中,我们将深入探讨如何使用C#进行...
在.NET开发领域,"两张表 显示增删改查"是一个常见的应用场景,它涉及到数据库操作、数据展示以及用户交互的基本功能。在这个项目中,我们可能会使用到ASP.NET框架,特别是对于网页应用的开发,因为标题中提到了...
在这个项目中,“WPF实现简单增删改查”是一个基础教程,它展示了如何利用WPF技术创建一个基本的数据管理应用。这个应用的核心功能包括对数据的插入、删除、修改和查询,对于初学者来说,这是一个很好的起点,因为它...
DataList,Repeater,DetailsView,FormView,GridView,ListView的增删改查实例,用反射进行更换数据源,自己写的;是新手学习的好资料! DataListOpener.aspx DetailsViewOpener.aspx FormViewOpener.aspx ...
总的来说,“ASP.NET增删改查”是一个基础但至关重要的主题,涵盖了Web应用开发中最基本的数据操作。通过掌握这些技能,你可以构建出功能完备、用户友好的Web应用,并为进一步深入学习ASP.NET和其他相关技术奠定坚实...
总的来说,"asp.net 增删改查分页"是一个涵盖数据库操作、用户交互、页面设计等多个方面的实践课题。通过这个示例,开发者可以学习到如何在ASP.NET环境中高效地管理和展示大量数据,同时提供良好的用户体验。在实际...
窗体程序(Winform)是C#中构建桌面应用的主要方式,而数据库的增删改查(CRUD,Create, Read, Update, Delete)是任何数据驱动应用的核心功能。三层架构(N-Tier Architecture)是一种常见的软件设计模式,它将应用...
总的来说,这个“ASP.NET增删改查例子”将涵盖数据库连接、数据操作、事务处理、错误处理、用户交互等多个方面,为初学者提供了一个全面了解和实践ASP.NET Web应用开发的机会。通过这个作业,你可以深入理解Web应用...
在Android开发领域,"android入门、增删改查"是一个非常基础且重要的主题,它涵盖了Android应用程序开发的基本操作,特别是涉及到数据管理的核心部分。在这个主题中,开发者将学习如何创建用户界面,处理用户输入,...
在这个“ASP.NET 增删改查”的示例中,我们将深入探讨如何在ASP.NET环境中进行数据操作的基本步骤,这对于新手来说是一个很好的学习起点。 首先,"default.aspx.cs.txt" 和 "default.aspx.txt" 文件通常包含了默认...
总结来说,"员工基本操作增删改查"是一个典型的ASP.NET Web应用开发实例,涵盖了数据模型设计、数据库交互、用户界面设计以及安全性等多个关键领域。掌握这些技能对于任何想要在Web开发领域深入的人来说都是至关重要...
在“增删改查”的上下文中,这通常指的是CRUD(Create,Read,Update,Delete)操作,这是数据库管理中最基本的四种操作。下面我们将详细探讨ASP.NET如何实现这些功能。 创建(Create): 在ASP.NET中,创建新记录...
对于初学者来说,理解并实现一个简单的ASP.NET增删改查系统是学习.NET Web开发的基础,而随着经验的增长,应逐渐引入更多的最佳实践,如数据验证、分层架构和异常处理,以提高应用程序的稳定性和用户体验。
总结,"wpf信息管理系统 增删改查"项目展示了如何使用WPF、MVVM模式和Access数据库来创建一个基础的信息管理系统。它涵盖了数据绑定、UI设计、数据库操作等关键知识点,是学习WPF开发和数据库管理的一个良好实践案例...
在这个教程中,我们将深入探讨如何使用C#与Access数据库进行交互,实现一个简单的“留言板”应用,涵盖增、删、改、查等基本功能。 首先,我们需要创建Access数据库。在Access中,可以设计一个名为“留言”的表,...
将ASP.NET与Ajax结合,可以实现无刷新的增删改查功能,这在现代Web应用中是至关重要的。 首先,理解ASP.NET中的增删改查操作。在数据库驱动的应用中,增(Add)、删(Delete)、改(Update)和查(Query)是最基本...