如何知道数据列表(表)的行索引

How to know row index of a DataList (table)

本文关键字:索引 何知道 数据 列表      更新时间:2023-09-26

我有一个数据列表,其中包含不同的图像和描述... 我希望单击一个图像并通过JavaScript知道所选行的索引(制作分页图片)。

我有这个代码,但不起作用...它始终在变量"当前页面"中返回 1。

我的 ASP.NET 代码

      <HeaderTemplate>
          <table style="width: 100%;">
             <tr>
                 <th style="width: 25%"></th>
                  <th style="width: 45%">
                     <asp:Label runat="server" ID="lblLegenda" Text="legenda" />
                   </th>
                   <th style="width: 10%;"></th>
              </tr>
       </HeaderTemplate>
       <ItemTemplate>
               <tr>
                   <td style="padding: 5px">
                        <asp:Image ID="img_gall" onclick="LoadDiv(this.src, this)" Style="cursor: pointer;" runat="server" Width="70px"  ImageUrl='imageurl' />
                   </td>
                   <td>
                       <asp:Label runat="server" ID="lblMultimediaDesciprion" Text='description' />
                   </td>
                    <td class="icons">
                        <asp:ImageButton ID="delete_image" ImageUrl="Images/icons/delete.png" runat="server" CommandName='<%# Eval("ID") %>'  OnClick="delete_image" />
                    </td>
              </tr>
      </ItemTemplate>
       <AlternatingItemTemplate>
               <tr class="colored">
                    <td style="padding: 5px">
                         <asp:Image ID="img_gall" onclick="LoadDiv(this.src, this)"  runat="server"   ImageUrl='imageurl' /></td>
                     <td>
                        <asp:Label runat="server" ID="lblMultimediaDesciprion" Text='description' />
                      </td>
                     <td class="icons">
                         <asp:ImageButton ID="delete_image" ImageUrl="Images/icons/delete.png" runat="server" CommandName='<%# Eval("ID") %>'  OnClick="delete_image"  />
                     </td>
                  </tr>
             </AlternatingItemTemplate>
</asp:DataList>

JAVASCRIPT 代码

 var CurrentPage = 1;
        function GetImageIndex(obj) {
            while (obj.parentNode.tagName != "TD")
                obj = obj.parentNode;
            var td = obj.parentNode;
            var tr = td.parentNode;
            if (td.rowIndex % 2 == 0) {
                return td.cellIndex + tr.rowIndex;
            }
            else {
                return td.cellIndex + (tr.rowIndex * 2);
            }
        }
        function LoadDiv(url, lnk) {
            CurrentPage = GetImageIndex(lnk.parentNode) + 1;
}

安约姆能帮我吗?

你复制了"parentNode",更改

GetImageIndex(lnk.parentNode) 

GetImageIndex(lnk) 

//OnItemCommand="dlstnewproducts_ItemCommand" 在源代码中的数据列表中使用它。

对于图像,给出命令名称="编辑"

protected void Datalist_ItemCommand(object source, DataListCommandEventArgs e) { 尝试 { if (e.CommandName == "Edit") { string Key = Datalist.DataKeys[e.Item.ItemIndex]。ToString(); Response.Redirect("ViewProduct1.aspx?UserId="+Key); } 还 { Response.redirect(login.aspx); }

在密钥中,您将获得索引