/// <summary> /// /// </summary> /// <param name="news"></param> /// <returns></returns> private object GetNewsUrl(object[] news) { if (news.Length > 0 && news[0] is News) { return(NewsDbProvider.GetNewsUrl((News)news[0])); } else { return(string.Empty); } }
/// <summary> /// 在标签每次呈现数据前触发的事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Tag_BeforeRender(object sender, System.ComponentModel.CancelEventArgs e) { ForEachTag t = (ForEachTag)sender; #region 方法一: 根据foreach标签的Item属性取得变量 //取得当前项的值(因为foreach标签的数据源是List<News>集合,所以当前项的值类型为News实体) News news = (News)t.Item.Value; //设置当前项的变量表达式的值.也即是"{$:#.news.url}"变量表达式 t.Item.SetExpValue("url", NewsDbProvider.GetNewsUrl(news)); #endregion #region 方法二: 直接获取news变量 //或者也可以直接取得news变量 //Variable newsVar = t.OwnerTemplate.Variables["news"]; //News news = (News)newsVar.Value; //newsVar.SetExpValue("url", NewsDbProvider.GetNewsUrl(news)); #endregion //当新闻不可见时.你可以取消本次输出 if (!news.Visible) { e.Cancel = true; } }