画面解像度によってMoveJukeBoxのショーケース表示アイテム数を変更する

 

最近ノートPCを3台買い、うち2台はFull-HD(1920x1080)でなくHD(1366x768)でした。

MovieJukeBoxはFull-HDで使用する前提で作っていたので、HDでも最適に表示させるように変更します。

設定から画面解像度を選ぶとクッキーに解像度を書き込んで、それをListViewのPreRender時に読み込んで、表示するアイテム数を可変させます。アイテム数だけでなくデータページャーの数字ボタンの表示数も可変させます。

ただし、HD解像度向けに最適化する画面はメイン画面のショーケースだけに留めます。大変だから。

DataPagerのNumericPagerfieldのButtonCountのプロパティが見当たらなくて躓いてしまいました。下記を参考にして実装しました。

DataPager.Fields プロパティ (System.Web.UI.WebControls)
https://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.datapager.fields(v=vs.100).aspx

 title="Default8Tile.aspx.vb">
    Protected Sub ListViewJukeBox_PreRender(sender As Object, e As System.EventArgs) Handles ListViewJukeBox.PreRender

        GenerateJS()
        Dim DisplayResolution As String = Request.Cookies("UserSettings")("DisplayResolution")
        If DisplayResolution IsNot Nothing Then
            Dim intPageSize As Integer
            Dim DP1 As DataPager = ListViewJukeBox.FindControl("DataPager1")
            Dim DP2 As DataPager = ListViewJukeBox.FindControl("DataPager2")
            If DP1 IsNot Nothing And DP2 IsNot Nothing Then
                Dim pagerField As New NumericPagerField()
                Dim NextPreviousPagerField As New NextPreviousPagerField()
                NextPreviousPagerField.ButtonType = ButtonType.Button
                NextPreviousPagerField.ShowFirstPageButton = True
                NextPreviousPagerField.ShowLastPageButton = True
                NextPreviousPagerField.ButtonCssClass = "Pager"
                Select Case DisplayResolution
                    Case "Full-HD"
                        intPageSize = 36
                        ListViewJukeBox.GroupItemCount = 12
                        pagerField.ButtonCount = 80
                    Case "HD"
                        intPageSize = 16
                        ListViewJukeBox.GroupItemCount = 8
                        pagerField.ButtonCount = 50
                    Case Else
                        intPageSize = 36
                        ListViewJukeBox.GroupItemCount = 12
                        pagerField.ButtonCount = 80
                End Select
                DP1.PageSize = intPageSize
                DP1.Fields.Clear()
                DP1.Fields.Add(NextPreviousPagerField)
                DP1.Fields.Add(pagerField)
                DP2.PageSize = intPageSize
                DP2.Fields.Clear()
                DP2.Fields.Add(NextPreviousPagerField)
                DP2.Fields.Add(pagerField)
            End If
        End If

    End Sub

 

(解像度にHDを選択した状態)

2016-05-21 (5)

(解像度にFull-HDを選択した状態)

2016-05-21 (6)

コメント

このブログの人気の投稿

ダブルクォーテーションで括られたCSVカ​ンマ区切りテキストファイルを SQL Server で Bulk Insert する方法

PowerShellでTSV/CSVの列を絞り込んで抽出し、(先頭/行末)からN行出力する

IKEAの鏡を壁に取り付ける