2011-07-13 70 views
2

我正在處理ASP.NET應用程序,其中我有3個用戶控件嵌入aspx頁面,而aspx頁面又使用母版頁。滾動到用戶控件中的特定DataList項目

2個用戶控件中的3個都有一個DataList。我想滾動到usercontrol中的特定/選定的DataListItem。

另外,我看了這個帖子(http://forums.asp.net/t/1596201.aspx)。但我認爲這不會對我有用。我在aspx頁面中有MaintainScrollPositionOnPostback =「true」 - 還沒有運氣。

這將是非常有益的,如果有人可以幫我找出一個辦法做到這一點

的標記看起來像這樣

 <asp:DataList ID="dl" runat="server" 
      SkinID="DataList" onitemcommand="dl_ItemCommand" 
      > 
      <ItemTemplate> 
       <asp:Label ID="lblIDTitle" runat="server" Text="ID: " /> 
       <asp:Label ID="dlLabel" runat="server" Text='<%# Eval("Id") %>' /> 
       <asp:LinkButton ID="btnSelect" runat="server" CommandName="Select">Select</asp:LinkButton> 
       <br /> 
       <asp:Label ID="NameLabel" runat="server" Text='<%# Eval("DisplayName") %>' /> 
       <br /> 
      </ItemTemplate> 
     </asp:DataList> 
+0

我們需要知道您的標記看起來像 –

回答

2

看起來很簡單。以下是具體步驟:

  • 在用戶控件包含數據列表,添加了此方法..

    public void FocusControlOnPageLoad(string ClientID, System.Web.UI.Page page) 
    { 
        ClientScriptManager clientScript = this.Page.ClientScript; 
        clientScript.RegisterClientScriptBlock(this.GetType(),"CtrlFocus", 
    
            @"<script> 
    
          function ScrollView() 
    
          { 
          var el = document.getElementById('" + ClientID + @"') 
          if (el != null) 
          {   
           el.scrollIntoView(); 
           el.focus(); 
          } 
          } 
    
          window.onload = ScrollView; 
    
          </script>"); 
    
    } 
    
  • 你可以從加價我有一個LinkBut​​ton看到。所以在OnItemCommand中,只要點擊鏈接按鈕,我就調用了這個函數。像這樣的東西;

    protected void dlCommitment_ItemCommand(object source, DataListCommandEventArgs e) 
    {    
        if (e.CommandName == "Select") 
        { 
         LinkButton link = LinkButton)dlCommitment.Items[e.Item.ItemIndex].FindControl("btnSelectCMTMT"); 
         FocusControlOnPageLoad(link.ClientID, this.Page); 
        } 
    } 
    

和它的工作就像一個魅力。感謝有關ScrollIntoView和我上面發佈的方法的代碼項目文章的討論。由於我很忙,我無法附加鏈接。感謝那些原始發佈此信息的人。

0

最簡單的訣竅是,如果u有任何可獲得焦點HTML元素像數據列表中的錨點或按鈕,將選項卡索引設置爲零,或使用js將焦點放在它上面。

+0

@hungryMind ..我很安靜,不知道該怎麼做。你能給我一個基於上述標記的例子嗎? –

相關問題