public bool SetListOption(String fieldName, String[] exportValues, String[] displayValues) {
if (exportValues == null && displayValues == null)
return false;
if (exportValues != null && displayValues != null && exportValues.Length != displayValues.Length)
throw new ArgumentException("The export and the display array must have the same size.");
int ftype = GetFieldType(fieldName);
if (ftype != FIELD_TYPE_COMBO && ftype != FIELD_TYPE_LIST)
return false;
Item fd = (Item)fields[fieldName];
String[] sing = null;
if (exportValues == null && displayValues != null)
sing = displayValues;
else if (exportValues != null && displayValues == null)
sing = exportValues;
PdfArray opt = new PdfArray();
if (sing != null) {
for (int k = 0; k < sing.Length; ++k)
opt.Add(new PdfString(sing[k], PdfObject.TEXT_UNICODE));
}
else {
for (int k = 0; k < exportValues.Length; ++k) {
PdfArray a = new PdfArray();
a.Add(new PdfString(exportValues[k], PdfObject.TEXT_UNICODE));
a.Add(new PdfString(displayValues[k], PdfObject.TEXT_UNICODE));
opt.Add(a);
}
}
fd.WriteToAll( PdfName.OPT, opt, Item.WRITE_VALUE | Item.WRITE_MERGED );
return true;
}