jqGrid 滾動載入 或者點選分頁載入兩種方式
阿新 • • 發佈:2019-02-02
public static < T > void sortByBeanFiled(List < T > list, String field, String order)
{
logger.debug("sort list...");
Integer d = order.equals(ASC) ? 1 : -1;
Collections.sort(list, new Comparator < T > ()
{
@ Override
public int compare(T t1, T t2)
{
if (null != t1 && null != t2)
{
String prop = null;
String newField = null;
Object value1 = null;
Object value2 = null;
//如果屬性為複合型別Java屬性
if (StringUtils.isNotBlank(field) && field.contains("." ))
{
prop = field.substring(0, field.lastIndexOf("."));
newField = field.substring(field.lastIndexOf(".") + 1);
Object propBean1 = ReflectUtil.getTypeField(t1, prop);
Object propBean2 = ReflectUtil.getTypeField(t2, prop);
value1 = extractJavaBeanPropertyValue(prop, newField, propBean1);
value2 = extractJavaBeanPropertyValue(prop, newField, propBean2);
}
else
{
value1 = ReflectUtil.getTypeField(t1, field);
value2 = ReflectUtil.getTypeField(t2, field);
}
if (null == value1 && null != value2)
{
return -d;
}
else if (null != value1 && null == value2)
{
return d;
}
else if (null == value1 && null == value2)
{
return 0;
}
else if (null != value1 && null != value2)
{
Integer tempd = 0;
if (value1 instanceof String)
{
tempd = Collator.getInstance(Locale.CHINESE).compare(value1, value2);
}
else if (value1 instanceof Number || value1 instanceof Integer)
{
tempd = Integer.valueOf(String.valueOf(value1)) - Integer.valueOf(String.valueOf(value2));
}
else if (value1 instanceof Date)
{
try
{
tempd = DATE_FORMAT.parse(String.valueOf(value1)).compareTo(DATE_FORMAT.parse(String.valueOf(value2)));
}
catch (ParseException e)
{
logger.debug("sortByBeanFiled 日期轉換異常");
e.printStackTrace();
}
}
else
{
logger.debug("sortByBeanFiled 轉換其他型別:" + value1.getClass().getName());
}
if (tempd > 0)
{
return d;
}
else if (tempd < 0)
{
return -d;
}
return tempd;
}
}
return 0;
}
private Object extractJavaBeanPropertyValue(String prop, String newField, Object propBean)
{
Object value = null;
//忽略...
return value;
}
}
);
}
{
logger.debug("sort list...");
Integer d = order.equals(ASC) ? 1 : -1;
Collections.sort(list, new Comparator < T > ()
{
@ Override
public int compare(T t1, T t2)
{
if
{
String prop = null;
String newField = null;
Object value1 = null;
Object value2 = null;
//如果屬性為複合型別Java屬性
if (StringUtils.isNotBlank(field) && field.contains("."
{
prop = field.substring(0, field.lastIndexOf("."));
newField = field.substring(field.lastIndexOf(".") + 1);
Object propBean1 = ReflectUtil.getTypeField(t1, prop);
Object propBean2 = ReflectUtil.getTypeField(t2, prop);
value1 = extractJavaBeanPropertyValue(prop, newField, propBean1);
value2 = extractJavaBeanPropertyValue(prop, newField, propBean2);
}
else
{
value1 = ReflectUtil.getTypeField(t1, field);
value2 = ReflectUtil.getTypeField(t2, field);
}
if (null == value1 && null != value2)
{
return -d;
}
else if (null != value1 && null == value2)
{
return d;
}
else if (null == value1 && null == value2)
{
return 0;
}
else if (null != value1 && null != value2)
{
Integer tempd = 0;
if (value1 instanceof String)
{
tempd = Collator.getInstance(Locale.CHINESE).compare(value1, value2);
}
else if (value1 instanceof Number || value1 instanceof Integer)
{
tempd = Integer.valueOf(String.valueOf(value1)) - Integer.valueOf(String.valueOf(value2));
}
else if (value1 instanceof Date)
{
try
{
tempd = DATE_FORMAT.parse(String.valueOf(value1)).compareTo(DATE_FORMAT.parse(String.valueOf(value2)));
}
catch (ParseException e)
{
logger.debug("sortByBeanFiled 日期轉換異常");
e.printStackTrace();
}
}
else
{
logger.debug("sortByBeanFiled 轉換其他型別:" + value1.getClass().getName());
}
if (tempd > 0)
{
return d;
}
else if (tempd < 0)
{
return -d;
}
return tempd;
}
}
return 0;
}
private Object extractJavaBeanPropertyValue(String prop, String newField, Object propBean)
{
Object value = null;
//忽略...
return value;
}
}
);
}