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 ") %> </td>
<td> <%# DataBinder.Eval(Container.DataItem, "Ncount ") %> </td>
<td> <%# DataBinder.Eval(Container.DataItem, "FFullName_EvalDepart ") %> </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()) %> </td>
cs:代码
protected string dealStr(string text)
{
// 在这里做你的处理就行了
return "绿园支行理工大学储蓄所 ";
}
------解决方案-------------------- <td> <%# DataBinder.Eval(Container.DataItem, "FFullName_EvalDepart ") %> </td>
改为:
<td> <%# FormatName(DataBinder.Eval(Container.DataItem, "FFullName_EvalDepart ").ToString()) %> </td>
cs文件中定义一个方法:
public string FormatName(string val)
{
string[] vals = val.Split( '@ ');
return vals[0];
}