页面上是用的repeater绑定的数据,其中有一项是直接输出后台cs类的变量的值,这个变量是在类中定义的,值在repeater的ItemDataBound事件中获得,但是现在的问题是显示在页面上的值不是每条数据绑定后获得的那个对应的值,我调试跟踪的时候发现代码运行时每个值都是对应得到了的,但是循环完显示在页面上就不对了,所有行都显示的其中某一项绑定后得到的值,这是为什么,要怎么办?
repeater部分代码:
<asp:Repeater ID="rptHouseListS" runat="server" OnItemDataBound="rptHouseListS_ItemDataBound">
<HeaderTemplate>
<table width="100%" border="1" cellspacing="0" cellpadding="4" class="houseList">
</HeaderTemplate>
<ItemTemplate>
<tr class="tr_b">
<td align="center"><input type="hidden" name="houseId" value="<%#DataBinder.Eval(Container.DataItem,"HouseId")%>"><%#DataBinder.Eval(Container.DataItem,"NumId")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"InId")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Estate")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Type")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Construction")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Floor")%>/<%#DataBinder.Eval(Container.DataItem,"TotalFloor")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem, "Area", "{0:F2}")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem, "UnitPrice", "{0:c}")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem, "Price", "{0:c}")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"AddTime","{0:d}")%></td>
<td align="center"><%=StrPubTime %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
ItemDataBound事件部分代码:
protected void rptHouseListS_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Guid HouseId = ((Model.HouseSellInfo2)e.Item.DataItem).HouseId;
Guid AgentId = Guid.Parse(Request.Cookies["loginInfo"]["UserId"]); HousesPubedAction bllPubed = new HousesPubedAction();
HousePubedInfo pubInfo = bllPubed.GetModelByCache(HouseId, AgentId);
StrPubTime = pubInfo != null ? pubInfo.LastUpdateTime.ToShortDateString() : "未发布"; }
}
StrPubTime是在这里定义的:
public partial class HouseList : System.Web.UI.Page
{
public string StrPubTime = "";
repeater部分代码:
<asp:Repeater ID="rptHouseListS" runat="server" OnItemDataBound="rptHouseListS_ItemDataBound">
<HeaderTemplate>
<table width="100%" border="1" cellspacing="0" cellpadding="4" class="houseList">
</HeaderTemplate>
<ItemTemplate>
<tr class="tr_b">
<td align="center"><input type="hidden" name="houseId" value="<%#DataBinder.Eval(Container.DataItem,"HouseId")%>"><%#DataBinder.Eval(Container.DataItem,"NumId")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"InId")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Estate")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Type")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Construction")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"Floor")%>/<%#DataBinder.Eval(Container.DataItem,"TotalFloor")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem, "Area", "{0:F2}")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem, "UnitPrice", "{0:c}")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem, "Price", "{0:c}")%></td>
<td align="center"><%#DataBinder.Eval(Container.DataItem,"AddTime","{0:d}")%></td>
<td align="center"><%=StrPubTime %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
ItemDataBound事件部分代码:
protected void rptHouseListS_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Guid HouseId = ((Model.HouseSellInfo2)e.Item.DataItem).HouseId;
Guid AgentId = Guid.Parse(Request.Cookies["loginInfo"]["UserId"]); HousesPubedAction bllPubed = new HousesPubedAction();
HousePubedInfo pubInfo = bllPubed.GetModelByCache(HouseId, AgentId);
StrPubTime = pubInfo != null ? pubInfo.LastUpdateTime.ToShortDateString() : "未发布"; }
}
StrPubTime是在这里定义的:
public partial class HouseList : System.Web.UI.Page
{
public string StrPubTime = "";
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货