ListView揭秘(友情链接)

ListView揭秘(友情链接):(假设本来有4条数据)

如果数据库里有数据:若要进入界面,首先要先执行ListView1_ItemDataBound进行数据绑定到ListView,数据库中有多少条数据就绑定(执行这个方法)多少次。如果数据库没有数据,就会直接进入页面,不执行这个方法。

如果点击了”插入”: ListView1_ItemInserting执行一遍后转向ListView1_ItemDataBound执行5遍

如果点击了”更新”: ListView1_ItemUpdating执行一遍后转向ListView1_ItemDataBound执行5遍

如果点击了“删除“: 数据库里还剩多少条数据,就会执行多少遍ListView1_ItemDataBound,绑定到ListView。

可以看出ListView1_ItemDataBound就好像一个dataReader一样,从第一条数据开始往下读,一条条数据进行绑定。

 

/想要把ListView的数据和DropDownList的数据绑定,当DropDownList选择"文本"时,ListView的LinkType字段会被赋

值为"文本"

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)

        {

            if (e.Item.ItemType == ListViewItemType.DataItem)//如果e.Item的数据类型是展示类型(普通的类型)。

            {

                DropDownList ddLinkType = (DropDownList)e.Item.FindControl("ddLinkType");

                ListViewDataItem lvDataItem = (ListViewDataItem)e.Item;

                DataRowView rowView = (DataRowView)lvDataItem.DataItem;

                if (ddLinkType != null && rowView != null)

                {

                    var linksRow = (友情链接.DAL.DataSetLinks.T_LinksRow)rowView.Row;

                    ddLinkType.SelectedValue = linksRow.LinkType;

                }

//应该直接写成下面那样就行了。这里是害怕第一次执行时,找不到DropDownList这个控和

//ListViewDataItem,因为这个是WebApplication,应该重新生成解决方案一下就可以。(我想的)

//var linksRow = (友情链接.DAL.DataSetLinks.T_LinksRow)rowView.Row;

//ddLinkType.SelectedValue = linksRow.LinkType;

            }

        }

// (显示转化)拿到DropDownList控件。(显示转化)拿到ListViewDataItem,即拿到一行的数据。显示转化为DataRowView。

//再把DataRow的行转化为数据集中的行。从而能够把数据库中的数据绑定到DropDownList中

//如果有DropDownList这个控件和DataRowView这项(也即是ListViewDataItem),然后进行绑定。

 

        protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)

        {

            DropDownList ddLinkType = (DropDownList)e.Item.FindControl("ddLinkType");

            e.Values["LinkType"] = ddLinkType.SelectedValue;

        }

 

        protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)

        {

            DropDownList ddLinkType = (DropDownList)ListView1.Items[e.ItemIndex].FindControl("ddLinkType");

            e.NewValues["LinkType"] = ddLinkType.SelectedValue;

        }

    }

 

ListViewItem对象呈现ListView控件。

ItemCreated事件,在ListView中创建一个项。

若要呈现 ListView 控件,必须先将该控件中的每个项都绑定到数据源中的一个记录。 将一个项(用 ListViewItem 对象表示)绑定到 ListView 控件中的数据时,将引发 ItemDataBound 事件。

e是ListViewItemEventArgs对象,可理解为:传递当前ItemDataBound事件。

e可理解为拿到一行。

e.Item 是一行中的所有数据。

e.Item.Type 数据项的类型。这个类型可分为三类(即ListViewItemType有三种类型)。DataItem,EmptyItem,InsertItem。

这里的e.Item.Type 是DataItem类型。(可理解为展示类型)

转载于:https://www.cnblogs.com/daxiaoyuyu/archive/2012/01/17/2324914.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值