datalist的数据绑定事件收藏

<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") %> &nbsp;
      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.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 += " &nbsp; <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();

转载于:https://www.cnblogs.com/wubin264/archive/2009/02/16/1391996.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值