不过,写多了,还是觉得很不可思议。
其循环时,处理属性节点较多时,一个循环,那个代码写起来就得上百行了。
你的天啊我的天,再写多几个循环,痛苦莫过于想跳楼还得排队买票再排队那个那个...
为了将世人解救的更彻底些,怀胎十日后终于又生下了一个方法...
方法三:
public void LoadData(MDataTable table);
public void SetForeach(string id, SetType setType, params object[] formatValues);
介绍:
看着熟悉吧:Set、SetFor、SetForeach,一看就是一个家族的。
少说多做,看下SetForeach如何简化:
using (MAction action = new MAction(CustomTable.ArticleView))
{
Document.LoadData(action.Select());
Document.SetForeach("tableID", "<li><a href=\"" + Config.HttpHost + "/{0}/article-detail-{1}\" >{2}</a></li>", Users.UserName, Content.ID, Content.Title);
}
看,看,看,知道有多省了吧。
不过情况往往是复杂的,在循环的过程中,多数情况需要二次处理?咋整?
这个在秋色园里当然会出现,比如分页控件的样式,就是一种情况。
为此,增加一个事件,Document_OnForeach(string text, object[] values, int row)
且看用法:
using (MAction action = new MAction(CustomTable.ArticleView))
{
Document.LoadData(action.Select());
Document.OnForeach+=new XmlHelper.SetForeachEventHandler(Document_OnForeach);
Document.SetForeach("tableID", "<li><a href=\"" + Config.HttpHost + "/{0}/article-detail-{1}\" >{2}</a></li>", Users.UserName, Content.ID, Content.Title);
}
string Document_OnForeach(string text, object[] values, int row)
{
//text就是被循环的标签内容
//values就是row的值
//row就是循环到第几行了
//最后,爱咋处理就咋处理,反正最后 return text;
}
|