2011-09-26 3 views
0

나는이 문제를 며칠 동안 추적 해왔다. 지금까지 많은 대중적인 방법을 시도했지만, 전혀 재검토하지 않았다. ListView에 인덱싱 기능에 대한 List (Of KeyValuePair (Of String, Integer))를 바인딩하고 있습니다. 필자가 처음 바인딩 할 때, 그것은 훌륭하게 작동하고, DataPager의 필수 한계에있는 모든 키와 값 쌍을 보여 주지만, 페이저로 전환하면 목록보기가 사라집니다.ListView with DataPager problem VB.Net/ASP.NET

Heres ListView에서 PagePropertiesChanging을 호출하면 어떻게됩니까?

Me.DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, False) 
userInterface.DataPagerReBind(ListView1) 

그리고 실제의 ListView

<asp:ListView ID="ListView1" runat="server" EnableTheming="True" OnPagePropertiesChanging="ListView1_PagePropertiesChanging"> 
    <LayoutTemplate> 
     <table cellpadding="2" width="640px" border="1" ID="tbl1" runat="server"> 
     <tr id="Tr2" runat="server" style="background-color: #98FB98"> 
      <th id="Th1" runat="server">Test point name</th> 
      <th id="Th2" runat="server">Number of failed Test points</th> 
     </tr> 
     <tr runat="server" id="itemPlaceHolder" /> 
     </table> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <tr id="Tr1" runat="server"> 
     <td> 
      <asp:Label ID="VendorIDLabel" runat="server" Text='<%# Eval("key") %>' /> 
     </td> 
     <td> 
      <asp:Label ID="AccountNumberLabel" runat="server" Text='<%# Eval("value") %>' /> 
     </td> 
     </tr> 
    </ItemTemplate> 
</asp:ListView> 
<asp:DataPager ID="DataPager1" runat="server" PageSize="10" PagedControlID="ListView1" > 
    <Fields> 
     <asp:NextPreviousPagerField 
      ButtonType="Link" 
      ShowFirstPageButton="True" 
      ShowNextPageButton="False" 
      ShowPreviousPageButton="False" /> 
     <asp:NumericPagerField /> 
     <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" 
      ShowNextPageButton="False" ShowPreviousPageButton="False" /> 
    </Fields> 
</asp:DataPager> 

그리고 userInterface.DataPagerRebind 그냥 원래 목록으로 목록보기를 바인딩합니다. 아무도 도와 줄 수 있습니까? 나는 정말로 여기에서 길을 잃었다. 이것은 내가 오랫동안 나를 괴롭혔다.리스트 뷰는 호출기를 사용할 때 사라진다. 감사합니다. userInterface.DataPagerReBind에 대한

정의 : 당신이 만드는 곳

Sub DataPagerReBind(ByRef listView1 As ListView) 
    listView1.DataSource = TestList 
    listView1.DataBind() 
End Sub 
+0

당신이 보여줄 수 vb.net에서 호출기 PreRender 이벤트를 사용하려고/데이터를 포함하는 TestList 개체를로드 중입니까? – patmortech

답변

1
protected void DataPager1_PreRender(object sender, EventArgs e) 
    { 
     //Assign the updated datasource to your listview again 
     //Bind the listview. 

    } 

이것은 C# 코드가 너무

+0

나는 그것을 시도하여 userInterface.DataPagerReBind (Listview1)를 호출했다. 여전히 동일한 결과 –

+0

'userInterface.DataPagerReBind (Listview1)'!! 이게 뭐야? –

+0

그것은 .... listview1.DataBind을() 목록을한다 (KeyValuePair의 (문자열, 정수) 및 ListView1.DataSource로 설정 한 후 ListView1.Databind –