<asp:Repeater ID="rptNew" runat="server" OnItemDataBound="rptNew_ItemDataBound" OnItemCommand="rptNew_ItemCommand">
                          <ItemTemplate>
                            <table style="font-size:14px; line-height:20px;">
                              <tr>
                                <td align="left" >
                                <asp:Literal ID="Literal1" runat="server" Text='From'></asp:Literal>
                                <asp:Literal ID="Literal2" runat="server" Text='Send' Visible="false"></asp:Literal>
                                <img src="../logn/user_01.gif" width="20" height="20" align="absmiddle" />: 
                                <asp:Literal ID="lbSend_UserId" runat="server" Text='<%# Eval("Send_UserId")%>'></asp:Literal>
                                <asp:Literal ID="lbTake_UserId" runat="server" Text='<%# Eval("Take_UserId")%>' Visible="false"></asp:Literal>
                                </td>
                                <td>时间: <span style="color:#FF0000"><%# Eval("Send_DateTime")%></span>
                                    <asp:Label ID="lbID" Visible="false" runat="server" Text='<%# Eval("M_Id") %>'></asp:Label>
                               </td>
                              </tr>
                              <tr>
                                <td align="left" colspan="2"><b>内容:</b><%# Eval("M_Content")%>                                    <br />
                                    <asp:ImageButton ID="Imgbtn_reply" runat="server" ImageUrl="../logn/btn_05.gif" ImageAlign="AbsMiddle" OnClick="Imgbtn_reply_Click1"/>
                                    <asp:ImageButton ID="Imgbtn_delete" runat="server" ImageUrl="../logn/btn_03.gif" ImageAlign="AbsMiddle" OnClick="Imgbtn_delete_Click1"/>
                                    <asp:ImageButton ID="Imgbtn_" runat="server" ImageUrl="../logn/btn_04.gif" ImageAlign="AbsMiddle" OnClick="Imgbtn__Click1"/>
                                  <br />
                                    <hr/>                                </td>
                              </tr>
                            </table>
                          </ItemTemplate>
                      </asp:Repeater>
有这样一个repeater   我想问的是  当我点ImageButton 的时候怎么  在后台判断我点的按钮是哪一行的 
例:
    protected void Imgbtn_delete_Click1(object sender, ImageClickEventArgs e)
    {
         在这我该怎么获取用户点的是哪行
    }

解决方案 »

  1.   


        protected void protected void rp_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {        if (e.Item.ItemType == ListItemType.Item)
            {
                ImageButton ibtn = e.Row.FindControl("Imgbtn_delete") as ImageButton;
                if (ibtn != null)
                {
                    //保存当前ImageButton 所在行的行号
                    ibtn.CommandArgument = e.Row.RowIndex.ToString();            }
            
            }
        }
        protected void Imgbtn_delete_Click1(object sender, ImageClickEventArgs e) 
        { 
            string indexStr="";
            ImageButton ibtn = sender as ImageButton;
            if (ibtn != null)
            {
                indexStr=ibtn.CommandArgument;//获得行号
            }       
         }
      

  2.   

     protected void protected void rp_ItemDataBound(object sender, RepeaterItemEventArgs e)
    在这个事件里,用e表示当前事件的项,不知道说明白没有
      

  3.   


    你把想要的到的放到ImageButton的CommandArgument属性中,然后再ItemCommand事件中判断,直接用e.CommandArgument就行了。
    比如说:
    有一个删除按钮,在页面上:
    <asp:ImageButton id="..." runat="server" CommandName="Delete" CommandArgument='<%# Eval(数据库中ID字段)%>'>
    然后后台:ItemCommand事件中:
    if(e.CommandName=="Delete")
    {
       //e.CommandArgument就是你所点的行的ID ,就可以写这样的语句了:
      string SQL="delete from 表 where ID='"+e.CommandArgument+"'";
    }
      

  4.   

    sorry ~
        protected void protected void rp_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {        if (e.Item.ItemType == ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
            {
                ImageButton ibtn = e.Row.FindControl("Imgbtn_delete") as ImageButton;
                if (ibtn != null)
                {
                    //保存当前ImageButton 所在行的行号
                    ibtn.CommandArgument = e.Row.RowIndex.ToString();            }
            
            }
        }
        protected void Imgbtn_delete_Click1(object sender, ImageClickEventArgs e) 
        { 
            int rowIndex;
            ImageButton ibtn = sender as ImageButton;
            if (ibtn != null)
            {
                int.TryParse(ibtn.CommandArgument,rowIndex);//获得行号,rowIndex为行号
            }       
         }
      

  5.   

    忽略AlternatingItem了这回你试试
      

  6.   

    也可以不用Repeater 的ItemDataBound事件如下:<asp:ImageButton ID="Imgbtn_delete" runat="server" ImageUrl="../logn/btn_03.gif"
     ImageAlign="AbsMiddle" OnClick="Imgbtn_delete_Click1"
    CommandArgument ='<%# Container.ItemIndex %>'
    /> 
        protected void Imgbtn_delete_Click1(object sender, ImageClickEventArgs e)  
        {  
            int rowIndex; 
            ImageButton ibtn = sender as ImageButton; 
            if (ibtn != null) 
            { 
                int.TryParse(ibtn.CommandArgument,rowIndex);//获得行号,rowIndex为行号 
            }        
         } 
      

  7.   


        protected void Imgbtn_delete_Click1(object sender, ImageClickEventArgs e)  
        {  
            int rowIndex; 
            ImageButton ibtn = sender as ImageButton; 
            if (ibtn != null) 
            { 
                int.TryParse(ibtn.CommandArgument,out rowIndex);//获得行号,rowIndex为行号 
            }        
         } 
      

  8.   

    <asp:ImageButton ID="Imgbtn_delete" runat="server" ImageUrl="../logn/btn_03.gif"
     ImageAlign="AbsMiddle" OnClick="Imgbtn_delete_Click1"
    CommandArgument ='<%# Container.ItemIndex %>'
    />   这个行了    
        protected void Imgbtn_delete_Click1(object sender, ImageClickEventArgs e)  
        {  
            int rowIndex; 
            ImageButton ibtn = sender as ImageButton; 
            if (ibtn != null) 
            { 
                int.TryParse(ibtn.CommandArgument,rowIndex);//获得行号,rowIndex为行号 
                  这我想获取这行的其他控件值  怎么弄  刚学会用repeater 不熟  谢谢大家
            }        
         } 
      

  9.   


        protected void Imgbtn_delete_Click1(object sender, ImageClickEventArgs e)  
        {  
            int itemIndex=0; 
            ImageButton ibtn = sender as ImageButton; 
            if (ibtn != null) 
            { 
                int.TryParse(ibtn.CommandArgument,out itemIndex);//获得行号,itemIndex为行号 
             }
            Literal lit=rptNew.Items[itemIndex].FindControl("lbSend_UserId") as Literal;   
            if(lit!=null)
                Response.Write("<br>" +lit.Text );     
         } 
      

  10.   

    功能都弄完了  再次感谢Sandy的帮忙  散分咯!~