1

我有一个简单的中继器,看起来像:

 <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
}

现在,我 ~love~ 要做的是使用 jQuery ScrollTo 插件直接滚动到新添加的行。

在 jQuery 插件中调用 ScrollTo() 方法的最佳方法是什么,以便我滚动到刚刚添加的特定行?无论如何我可以在我的 ItemTemplate 中标记我的行,以便我可以通过 jQuery 轻松选择要滚动到的元素?

理想情况下,在 RefreshOptions() 之后,我想执行 ScrollTo 函数以向下滚动到新行。

4

2 回答 2

1

如果您知道该行的客户端 ID(您可以获得),那么简单地调用它相对容易

$(document).scrollTo("#<row-id-here>", 800);
于 2010-07-06T16:31:22.237 回答
0

当您将对象添加到数据库时(或之后),获取新插入对象的 id。修改转发器以包含一个标签,Visible="false"以便它不会呈现给客户端。挂钩ItemDataBound事件并根据您获取的 id 检查每个标签。当您找到匹配的行时,您可以获得该行的 id,然后您就可以将其用于滚动参数。

注意:其他数据绑定控件有一个 DataKey 属性,可用于对象的 id 并使其更简单一些。不确定此时您是否与中继器相关联,但 GridView 或 ListView 可能值得研究。

于 2010-07-06T20:45:50.407 回答