2016-12-07 15 views
0

私は、ブログのページセレクタ/改ページのリンクをプリントアウトするリピータを使用しています。ブログのメインビューには、番号1は、(結果のユーザーが既にメインページのため、であるため、初期セット)、その周囲のリンクを持つべきではありません。ユーザーがページのリンクをクリックした場合、これは#はページ番号です?page=#のクエリ文字列を追加します。そのページが読み込まれると、その番号はその周りにリンクを持たない番号になります。これは、人々が自分がどのページにいるかを見ることができるように役立ちます。リピータ<ItemTemplate>の条件付きアンカー?

あなたの視覚を与えるためには、ここで承認されたデザインです:

enter image description here

ここでは、リピーターのための私のマークアップです:マークアップまたはコードビハインドのいずれかで

<asp:Repeater ID="rptBlogPagination" runat="server"> 
    <ItemTemplate> 
      <li> 
       <a href="?page=<%# Container.DataItem %>"> 
        <%# Container.DataItem %> 
       </a> 
      </li> 
    </ItemTemplate> 
</asp:Repeater> 

、どのように最初に現在のリクエスト/クエリ文字列を確認してから、条件付きでアンカーを囲むのですか?三元声明/ヌル合体が普及しているように見えますが、そのベストプラクティスですか?それも可能ていないようですが、私はそれが

enter image description here

は、私はまた、ID runat="server"が、コード <li>を与えてみました...それは仕事を得ることができませんでした、本当にとにかく試してください、と与えました後ろはそれを認識しませんでした。私は <ItemTemplate>の中の要素には到達できないと思う。

+0

あなたはASP.Net *** [DataPager](https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datapager(V = vs.110)を使用することができませんでした。 aspx)***サーバーコントロール? – Win

+0

@Win理由はありません。私は前にこれをしていない、DataPagerは良い方法ですか?この特定の機能を実装しやすくしますか? – Paul

答えて

0

は、私はすべてのページ番号のアンカーを維持するが、ユーザーが現在の代わりにオレンジ色の黒い色を作ることによって閲覧されたものにCSSクラスを追加することになったので働きました。

0

あなたはRepeater.ItemDataBoundイベントに固定します。追加情報はhereです。

protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{  
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     // Your conditional logic would go here. 
    } 
} 

条件の例は、DataItemでインスタンス化することです。したがって、次のようになります。

((Example)e.Item.DataItem).PropertyInPoco == "Some Value" 

これはあなたのために明確になります。どちらの回答の

+0

私は混乱しています。これが最初のページで、クエリ文字列がないとします。アンカーをマークアップに含めないように指定するにはどうすればよいですか? ItemDataBoundイベントからマークアップを取得できますか? – Paul

+0

リピータが実行されるたびに、イベントが発生します。だからあなたはそこで比較をするだろう。ページに応じて、ポストバックはクエリ文字列を示します。だから私はあなたが混乱しているかどうか分からない。 – Greg