您的位置:首页 > 其它

datalist的数据绑定事件收藏

2009-02-16 21:40 417 查看
<ASP:DataList id="MyDataList" runat="server" RepeatLayout="Table"

OnItemDataBound="CheckTitle">

//OnItemDataBound事件发生在各行被绑定到源数据时被调用

<HeaderTemplate>

<div class="rHead">

Some of the Latest Wrox Press Books<br />

<img src="images/redrule.gif">

</div>

</HeaderTemplate>

<ItemTemplate>

<div class="rItem">

<b><ASP:Label id="TitleLabel" runat="server"

Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>' /></b><br />

* ISBN: <%# DataBinder.Eval(Container.DataItem, "ISBN") %>  

Published: <%# DataBinder.Eval(Container.DataItem, "PublicationDate") %>

</div>

</ItemTemplate>

//上面绑定到数据源的各个字段

<FooterTemplate>

<img src="images/redrule.gif">

<div class="rFoot">

For more information visit <a href="http://www.wrox.comhttp://www.wrox.com">http://www.wrox.com</a>

</div>

</FooterTemplate>

</ASP:DataList><p />

下面是脚本:

<script language="c#" runat="server">

void Page_Load(Object sender, EventArgs e)

{

if (!Page.IsPostBack) // fill the DataList from a DataView object

{

// get connection string from ..\global\connect-strings.ascx user control

string strConnect = ctlConnectStrings.OLEDBConnectionString;

// create a SQL statement to select some rows from the database

string strSelect = "SELECT * FROM BookList WHERE ISBN LIKE '%18610026%'";

// create a variable to hold an instance of a DataView object

DataView objDataView;

// get dataset from get-dataset-control.ascx user control

//数据源是dataview

objDataView = ctlDataView.GetDataView(strConnect, strSelect);

if (objDataView == null)

return;

// set the DataSource property of the DataList

MyDataList.DataSource = objDataView;

// and bind the control to the data

MyDataList.DataBind();

}

}

//OnItemDataBound事件发生在各行被绑定到源数据时被调用该函数(即在发送到客户端之前发生):

void CheckTitle(Object objSender, DataListItemEventArgs objArgs)

{

// see what type of row (header, footer, item, etc.) caused the event

ListItemType objItemType = (ListItemType)objArgs.Item.ItemType;

// only format the results if it's an Item or AlternatingItem event

if (objItemType == ListItemType.Item || objItemType == ListItemType.AlternatingItem)

{

// objArgs.Item.DataItem returns the data for this row of items

DataRowView objRowVals = (DataRowView)objArgs.Item.DataItem;

// get the value of the Title column

string strTitle = objRowVals["Title"].ToString();

if (strTitle.IndexOf("Active Server Pages") != -1 || strTitle.IndexOf("ADO") != -1)

{

// get a reference to the "Title" ASP:Label control in this row

//找到此行中id="TitleLabel"的单元并添加特殊字段

Label objLabel = (Label)objArgs.Item.FindControl("TitleLabel");

// add a message to this Label control

objLabel.Text += "   <span class='bigRed'>Great for ASP Programmers!</span>";

}

}

}

</script>

小结:DataListItemEventArgs objArgs对象包含了关于该事件和被绑定的行信息。

注意用法:

ListItemType objItemType = (ListItemType)objArgs.Item.ItemType;

DataRowView objRowVals = (DataRowView)objArgs.Item.DataItem;

//objArgs.Item.DataItem返回了此行的数据项(本例中为"Title"和"ISBN""PublicationDate")

string strTitle = objRowVals["Title"].ToString();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐