日期:2014-05-20  浏览次数:20781 次

有关repeater的问题。如何判断。。。
用repeater显示日记,每页显示5条,我点击第一条的时候会转到一个日志的页面,并且根据该日志的编号显示出该日志的内容和评论
  int i = 0;
  foreach (RepeaterItem Rti in Repeater1.Items)
  {
  Label lbl = (Label)Rti.FindControl("lblNum");
  DiaryNum[i] = lbl.ToString();
  i += 1;
  }
我将里面每条日志的编号存在了这个数组里面,
现在面临的问题是,当我点击repeater的第一条记录的时候,咋获取 DiaryNum数组里面的第一个元素呢?点击第二条日记的时候获取 DiaryNum数组里面的第二个元素呢?
<asp:Label ID="lblNum" runat="server" Text='<%#Eval("DiaryNum")%>'></asp:Label>
<asp:LinkButton ID="lkbTitle" runat="server" CssClass="lkbbtn" OnClick="lkbTitle_Click"><%#Eval("DiaryTitle")%></asp:LinkButton>
我手工的添加了这个按钮的单击事件,它显示的是这5篇日志标题,不管点击哪一篇日志的标题,相应的都是这个lkbTitle_Click事件,我没办法根据点击不同的日志标题返回点击日志的日志编号。求助。。。

------解决方案--------------------
protected void lkbTitle_Click(object sender, EventArgs e)
{
LinkButton link1 = (LinkButton)sender;
int index = ((RepeaterItem)link1.NamingContainer).ItemIndex;
}

index就是你要的行号,从0到5!