ASP.NET — при щелчке Datarow получить количество пикселей сверху DataTable

Небольшая предыстория:

У меня есть данные, отображающие данные с использованием asp:Repeater.

Я использую комбинацию прокрутки и разбиения на страницы. Когда вы щелкаете строку, таблица данных перезагружается и прокручивается вверх.

Я использую scrollTop() для прокрутки ранее нажатой строки в поле зрения.

scrollTop() принимает в качестве параметра расстояние в пикселях от вершины. У меня есть функция щелчка для строк, которая отображает сведения о строке, по которой щелкнули.

Проблема:

Я пытаюсь найти способ рассчитать расстояние в пикселях от верхней части таблицы данных до выбранной строки, чтобы я мог использовать его в качестве параметра для scrollTop()

Вот формат datatable:

<table id="tblId" class="dataTables_display">
    <thead>
        <tr>
            //a bunch of <th tags>
        </tr>
    </thead>
    <tbody>
    <asp:Repeater ID="rptCraft" runat="server" OnItemDataBound="rptCraft_ItemDataBound">
        <ItemTemplate>
            <tr>
                <td style="display:none;" class="rowClick"><asp:Literal ID="litId" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "Id") %>'/></td>
                <td><asp:CheckBox ID="chkDelete" runat="server" AutoPostBack="false" /></td>
                <td><asp:Literal ID="litDescription" ClientIDMode="Static" runat="server" Text='<%# Eval("Description")%>'/></td>   
             </tr>
         </ItemTemplate>                
     </asp:Repeater>
     </tbody>

And here is the on click function:

        $("#tblId tbody tr").live("click", function (event) {

        var cell = $(this).children("td:first");
        var id = jQuery.trim(cell.text());        //get id code

        if (id != "" && !isNaN(id)) {
            //some code that accesses DB and shows details of row
        }
    });

Я предполагаю, что я могу сохранить расстояние в пикселях от строки, по которой щелкнули, в функции щелчка, а затем использовать ее для вызова scrollTop().

Есть ли простой способ рассчитать это расстояние в пикселях? Или есть лучший способ прокрутить ранее нажатую строку?


person 1201930604    schedule 22.08.2014    source источник


Ответы (1)


Простая ссылка на «this.offsetTop» — это все, что мне было нужно в функции по клику. Я передал это значение в качестве параметра в scrollTop() и получил нужную мне функциональность.

offsetTop возвращает расстояние в пикселях от верхней позиции родительского элемента до верхней позиции вызывающего объекта.

person 1201930604    schedule 25.08.2014