我正在构建一个“过滤器组件”,显示该“产品类型”的所有可用过滤器。
相当标准的东西只是想到百思买,亚马逊,craiglist样式过滤器。
现在,我主要关注如何生成过滤器选项(而不是如何在用户单击过滤器选项时处理,然后必须关闭过滤器并向下过滤结果)。
所以我创建了一个具有这样的json对象
将创建每个标题部分(HardDrive,Ram大小,CPU核心数),它是什么类型(复选框,文本框), 该部分是否应该打开, 它应该有一个搜索框吗?
For i = 1 To 5
Valuex = Evaluate("=IsNumber(Value(Mid(C5, 2, 1)))")
MsgBox (Valuex)
Valuex1 = Evaluate("=Left(Trim(C5), 1) = ""R""")
MsgBox (Valuex1)
If ((Evaluate("=Left(Trim(C5), 1) = ""R""") = "True") And (Evaluate("=IsNumber(Value(Mid(C5, 2, 1)))") = "True")) Then
Range("D5").Formula = "=VLOOKUP(C5,[old.xls]Sheet1!$D:$V,19,0)"
MsgBox ("if")
Else
Range("D5").Formula = "=VLOOKUP(C5,[old.xls]Sheet1!$E:$V,18,0)"
MsgBox ("else")
End If
Next i
现在,我需要弄清楚是否应该按原样存储以上内容,还是应该将其分解为列格式。
即
{
type: "", // this is what type of filter it will be (textbox, checkboxes and etc)
header: "Filter Header",
property: "", // this maps it back to the column name in db used when filter is actually triggered.
hasSearchBox: false, // some filter options are long so search box can be shown.
isOpen: true, // controls if this filter should be in an open or closed state.
for: ["What Products this filter applies to. Some of these filters are common between all products"]
},
这确实使将来添加新过滤器变得更加容易,但是我有点担心是否出现了一些新选项,该选项可能仅适用于某些过滤器而不适用于其他过滤器(例如,许多空列),或者是否需要将来会更复杂的对象(例如为文本框设置占位符名称)。
或者如果我应该像这样存储它
Filters Tbl
Id
ProductTypeId
type
header
property
hasSearchBox
isOpen