如何获取listview的行索引?

时间:2013-12-10 11:48:26

标签: c# asp.net sql listview

我有一个列表视图,显示来自数据库的图像,代码如下所示。

 <ItemTemplate>
         <td runat="server" style="background-color: #E0FFFF;color: #333333;">
          <asp:ImageButton ID="ImageButton1" runat="server" 
           ImageUrl='<%# "imageHandler.ashx?ID=" + Eval("ID")%>' />
          </td>
 </ItemTemplate>

数据源看起来像这样

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:GalleryConnectionString %>" 
SelectCommand="SELECT [ID], [IMAGE] FROM [Icon]"></asp:SqlDataSource>

现在我想得到所选图像按钮的行索引以供进一步说明我该怎么做才能引导我?

2 个答案:

答案 0 :(得分:1)

点击imagebutton时发生事件:

protected void ImageButton1_click(object sender, EventArgs e)
{
    ImgaeButton btnSender = (ImageButton)sender;
    ListViewItem lvItem = (ListViewItem)btnSender.NamingContainer;
    lvItem.DataItemIndex();
    lvItem.DisplayIndex();
}

DataItemIndex获取绑定的数据项的索引。

DisplayIndex获取ListView中显示的数据项的位置。

答案 1 :(得分:1)

我使用此代码完成了所有stackoverflow(我的老师)

 protected void abc(object sender, ListViewCommandEventArgs e)
    {
        // if(e.CommandSource == System.Web.UI.WebControls.ImageButton)
        ListViewDataItem dataItem = (ListViewDataItem)e.Item;
        //int RowID = Convert.ToInt32(ListView1.DataKeys[dataItem.DisplayIndex].Value);
        int DispalyIndex = e.Item.DisplayIndex;
        int ItemIndex = e.Item.DataItemIndex;
        ImageButton imgbtn = (ImageButton)dataItem.FindControl("ImageButton1");
        if (imgbtn != null)
        {
            string imageurl = imgbtn.ImageUrl;
            if (imageurl != null && imageurl != string.Empty)
            {
                int equalindex = imageurl.IndexOf("=");
                int Totallength = (imageurl.TrimEnd()).TrimStart() .Length;
                int ImageID = Convert.ToInt32(imageurl.Substring(equalindex + 1, (Totallength -(equalindex+1))));
            }

        }
    }