Как я могу использовать плагин ScrollTo jQuery для прокрутки к определенной строке в повторителе в ASP.NET? - PullRequest
1 голос
/ 06 июля 2010

У меня есть простой повторитель, который выглядит так:

 <asp:Repeater runat="server" ID="rptOptions" OnItemDataBound="rptOptions_ItemDataBound">
     <HeaderTemplate>
         <thead>
             <tr>
                 <td class="GridHeader">Account</td>    
                 <td class="GridHeader">Margin</td>  
                 <td class="GridHeader">Symbol</td>  
                 <td class="GridHeader">Usymbol</td>  
             </tr>
         </thead>
     </HeaderTemplate>
     <ItemTemplate>
         <tbody>
             <tr runat="server" ID="trOption">
                 <td class="GridRow"><asp:Label runat="server" ID="lblOptionAccount"></asp:Label></td>
                 <td class="GridRow"><asp:Label runat="server" ID="lblOptionMargin"></asp:Label></td>
                 <td class="GridRow"><asp:Label runat="server" ID="lblOptionSymbol"></asp:Label></td>
                 <td class="GridRow"><asp:Label runat="server" ID="lblOptionUsymbol"></asp:Label></td>                         
             </tr>
         </tbody>
     </ItemTemplate>
 </asp:Repeater>

Теперь в моем коде позади есть событие, которое должно быть добавлено / вставлено в базу данных. После того, как это произойдет, я повторно получу новый список опций из базы данных и заново свяжу их с повторителем. Это происходит внутри панели обновления, поэтому список обновляется сразу для пользователя.

protected void lbtnAddOptionSave_Click(object sender, EventArgs e)  
{
    SelectedOption = new Option()
    {
        Account = txtAddOptionAccountNumber.Text,
        Margin = chkAddOptionMargin.Checked,
        Symbol = txtAddOptionSymbol.Text,
        Usymbol = txtAddOptionUsymbol.Text,
    };

    Presenter.OnAddOption(); // Insert new option into database
    RefreshOptions(); // Re-get list of options, bind them to repeater
}

Теперь я хотел бы ~ сделать плагин jQuery ScrollTo для прокрутки прямо к новой добавленной строке.

Как лучше всего вызывать метод ScrollTo () в плагине jQuery, чтобы я прокручивал до этой конкретной строки, которая была только что добавлена? Могу ли я в любом случае пометить свои строки в моем ItemTemplate, чтобы я мог легко выбрать элемент для прокрутки с помощью jQuery?

В идеале, сразу после RefreshOptions () я хотел бы выполнить функцию ScrollTo для прокрутки вниз до новой строки.

Ответы [ 2 ]

1 голос
/ 06 июля 2010

Если вы знаете идентификатор строки на стороне клиента (который вы можете получить), просто безболезненно просто позвонить

$(document).scrollTo("#<row-id-here>", 800);
0 голосов
/ 07 июля 2010

Когда вы добавляете объект в базу данных (или сразу после этого), захватите идентификатор вновь вставленного объекта.Измените повторитель, добавив метку с Visible="false", чтобы он не отображался на клиенте.Подключитесь к событию ItemDataBound и проверьте каждый ярлык по идентификатору, который вы захватили.Когда вы найдете подходящую строку, вы можете получить идентификатор строки и затем использовать ее для параметра прокрутки.

Примечание. Другие элементы управления с привязкой к данным имеют свойство DataKey, которое можно использоватьдля id объекта и сделать это немного проще.Не уверен, что вы привязаны к повторителю в данный момент, но GridView или ListView может стоить изучить.

...