日期:2014-05-18  浏览次数:20425 次

vs2003 asp:repeater 的字段绑定问题,代码如下?
aspx:代码

<asp:repeater   id= "Marking "   EnableViewState= "False "   Runat= "server ">
<HeaderTemplate>
<TABLE   cellSpacing= "0 "   cellPadding= "0 "   border= "0 "   id= "viewTable "   width= "100% ">
<TBODY   style= "width:100% ">
<TR   class= "repeaterHeadRow ">
<TD> 得分等级 </TD>
<td> 数量 </td>
<TD> 单位列表 </TD>
</TR>
</HeaderTemplate>
<itemtemplate>
<TR   class= "repeaterContentRow ">
<td> <%#   DataBinder.Eval(Container.DataItem,   "categories ")   %> &nbsp; </td>
<td> <%#   DataBinder.Eval(Container.DataItem,   "Ncount ")   %> &nbsp; </td>
<td> <%#   DataBinder.Eval(Container.DataItem,   "FFullName_EvalDepart ")   %> &nbsp; </td>
</TR>
</itemtemplate>
<FOOTERTEMPLATE>
</TABLE>
</FOOTERTEMPLATE>  
</asp:repeater>

cs:代码
private   DataTable   GetDataSource(   )
{
EvalStatisticMarkingInfoBLL   evalstatic   =   new   EvalStatisticMarkingInfoBLL();
return   evalstatic.GetStatisticEvalMarkingByProcedure(   base.Account,   DateTime.Now.Year.ToString().Trim()   );
}
private   void   BindDataSource()
{
Marking.DataSource   =   GetDataSource();
Marking.DataBind();

}

其中 "FFullName_EvalDepart "字段值是这样:
绿园支行理工大学储蓄所@4$22.01.06.52.0614   ;@和$是把名称、id、和单位代码隔开,
现在是repeater绑定时怎么处理这个字符串
才能在显示时只显示名称,id作为下个页面的参数?

------解决方案--------------------
td> <%# dealStr(DataBinder.Eval(Container.DataItem, "FFullName_EvalDepart ").ToString()) %> &nbsp; </td>

cs:代码

protected string dealStr(string text)
{
// 在这里做你的处理就行了
return "绿园支行理工大学储蓄所 ";
}
------解决方案--------------------
<td> <%# DataBinder.Eval(Container.DataItem, "FFullName_EvalDepart ") %> &nbsp; </td>
改为:
<td> <%# FormatName(DataBinder.Eval(Container.DataItem, "FFullName_EvalDepart ").ToString()) %> &nbsp; </td>

cs文件中定义一个方法:
public string FormatName(string val)
{
string[] vals = val.Split( '@ ');
return vals[0];
}