Curl Global Community

Full Version: 常に1件以上が選択されているグリッド
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
RecordGrid.select-current-record? = true を指定したレコードグリッドで、
レコードを選択した状態でも、
グリッド内の余白の部分をクリックすると、選択状態が解除されてしまいます。

レコードが0件の場合を除いて、
常に1件以上のレコードが選択されている状態にしたいのですが、
どのようにすればよいですか。
「選択が解除されたら選択をしなおす」という方法なら何とか実装できそうです。
もっと良い方法があれば教えてください。

Code:
{let rs:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField "First", domain = String},
            {RecordField "Last", domain = String},
            {RecordField "Age", domain = int}
        },
        {RecordData First = "John", Last = "Smith", Age = 25},
        {RecordData First = "Jane", Last = "Smith", Age = 29},
        {RecordData First = "Jane", Last = "Jones", Age = 28}
    }
}
{def grid =
    {RecordGrid
        select-current-record? = true,
        cells-take-focus? = false,
        multiple-selection-enabled? = false,
        background = "white",
        record-source = rs,
        ||レコードの選択状態を解除しない
        {on e:SelectionEvent at grid:RecordGrid do
            {if grid.selection.record-count == 0 then
                {try
                    {grid.select-record grid.current-index}
                    catch e:Exception do
                    ||レコード再設定時等で、選択時にエラーが発生する場合は無視
                }
            }
        }
    }
}
{value grid}