初始ASP.NET数据控件【续 ListView】
ListView控件
ListView控件可以用来显示数据,它还提供编辑,删除,插入,分页与排序等功能。ListView是GridView与DataList的融合体,它具有GridView控件编辑数据的功能同时还具有DataList控件的灵活布局的功能。ListView控件的分页功能需要通过DataPager控件来实现。
ListView控件的模版
- LayoutTemplate:标识定义控件的主要布局的根模版。包含一个占位符对象,如表行(tr),div,span元素。此元素将由ItemTemplate模版或者GroupTemplate模版中的定义的内容替换。
- ItemTemplate:表示要为各个显示的数据绑定内容。
- ItemSeparatorTemplate:标识要在各个项之间呈现内容。
- GroupTemplate:标识组布局的内容。
- GroupSeparatorTemplate:标识要在各个项之间呈现内容。
- EmptyItemTemplate:标识在使用GroupTemplate模版时为空项呈现的内容。
- EmptyDataTemplate:标识在数据源末返回数据时要呈现内容。
- SelectedItemTemplate:标识为区分所选数据项与显示的其他项,而为该所选项呈现的内容。
- AIternatingItemTemplate:标识为便于区分连续项,而为交替项呈现的内容。
- EditItemTemplate:标识要在编辑项时呈现的内容。对于正在编辑的数据项,将呈现EditItemTemplate模版以替代ItemTemplate模版。
- InsertItemTemplate:标识要在插入项时呈现的内容。
关于ListView控件的属性和常用事件就不一一列举了,我这里就上一个简单的例子来说明ListView对数据的显示,分页和排序功能。这些功能只需要在控件上稍微配置一下都可以搞定,配置可以搞定不是代表写代码不能搞定,这里配置是为了说明1.懒病烦了2.除了懒还是懒说明不了别的。建议和我一样的小菜就不要偷懒啦,我吗?就通融这一次。。。。o(∩_∩)o
首先创建一个演示的页面,放个ListView进去,在放一个SqlDataSource数据源控件进去(偷懒就用这个吧,我承认我懒病犯了)。具体如下:
配置SqlDataSource数据源控件并且将SqlDataSource控件指给ListView控件的DataSourceID属性。
具体如下:
当我们干完这么多,有干吗?好吧,让我下一步这么多后其实我们已经快实现了,然后我继续配置ListView控件,如下:
选上分页,然后上面还有什么表格的样式,都可以去试一下!
然后我们排序还没弄呢!继续配置ListView控件(猛点),然后你就发现真的太强大了,多强大呢!如下:
然后呢,把你的VS切换到HTML源代码,在HTML源代码中找到DataPager所在的位置,然后在这个位置末从工具箱托2个Button控件过来(OK,还是偷懒吧!)
然后设置两个按钮的text属性为你想要的排序名字,然后将CommandName属性设为Sort.在将CommandArgument设置为你排序的字段(指的数据设计时的字段),具体如下:
写完后,我们运行的效果如下:
目的实现了,也是懒的直接表现一行代码没写。。。。。
这里只是简单的了解下,具体要研究的话还是需要找这方面的资料多学下下。
前面也简单的说了GridView控件,之后在一个群里看见有朋友在讨论GridView控件中隐藏的列值,当时由于本人也是初始就没直接参与群里朋友的聊天,今天闲着没事就自己研究了一下。
我们通常不希望在客户端暴露的数据都会在GridView将对应的列的Visible属性设置为false(我说通常是这样做的,当然不排除不给GridView绑定不希望客户端看到的数据或者其他)下面来实验一下。
我把ID列设为隐藏的了,然后我们放一个按钮然后单击按钮时查看选中信息在数据库中的编号,将GridView控件中行的编号信息显示Web页面中。然后写我们按钮的单击事件代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DataShowApplication { public partial class TextDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string str = string.Empty; int rowNo = 0; this.Response.Write("你想看的值如下:" + "<br/>"); //遍历GridView中的所有行 foreach (GridViewRow row in this.GridView1.Rows) { //取当前行中的复选框的框值 bool ischeck = ((CheckBox)row.FindControl("cbCheckBox")).Checked; if (ischeck) { //获取隐藏值的信息编号字段 string hidecolum_id = this.GridView1.DataKeyNames[0]; //获取隐藏列值 int hidevealue = Convert.ToInt32(this.GridView1.DataKeys[rowNo].Value); this.Response.Write(hidevealue + "<br/>"); } rowNo++; } this.Response.Write(str); } } }
运行结果如下:
这样就可以获取到隐藏列的值!
关于数据控件就先简单了解到这里,后面需要用到的时候我们在来慢慢研究这些。。。。