本文整理汇总了C#中Row.GetClientFieldDef方法的典型用法代码示例。如果您正苦于以下问题:C# Row.GetClientFieldDef方法的具体用法?C# Row.GetClientFieldDef怎么用?C# Row.GetClientFieldDef使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Row
的用法示例。
在下文中一共展示了Row.GetClientFieldDef方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RowToRecordInitJSON
/// <summary>
/// Generates JSON object suitable for passing into WV.RecordModel.Record(...) constructor on the client.
/// Pass target to select attributes targeted to ANY target or to the specified one, for example
/// may get attributes for client data entry screen that sees field metadata differently, in which case target will reflect the name
/// of the screen
/// </summary>
public virtual JSONDataMap RowToRecordInitJSON(Row row,
Exception validationError,
string recID = null,
string target = null,
string isoLang = null,
ModelFieldValueListLookupFunc valueListLookup = null)
{
var result = new JSONDataMap();
if (row==null) return result;
if (recID.IsNullOrWhiteSpace()) recID = Guid.NewGuid().ToString();
result["OK"] = true;
result["ID"] = recID;
if (isoLang.IsNotNullOrWhiteSpace())
result["ISOLang"] = isoLang;
//20140914 DKh
var form = row as FormModel;
if (form != null)
{
result[FormModel.JSON_MODE_PROPERTY] = form.FormMode;
result[FormModel.JSON_CSRF_PROPERTY] = form.CSRFToken;
//20160123 DKh
if (form.HasRoundtripBag)
result[FormModel.JSON_ROUNDTRIP_PROPERTY] = form.RoundtripBag.ToJSON(JSONWritingOptions.CompactASCII);
}
var fields = new JSONDataArray();
result["fields"] = fields;
var schemaName = row.Schema.Name;
if (row.Schema.TypedRowType!=null) schemaName = row.Schema.TypedRowType.FullName;
foreach(var sfdef in row.Schema.FieldDefs.Where(fd=>!fd.NonUI))
{
var fdef = row.GetClientFieldDef(this, sfdef, target, isoLang);
if (fdef==null || fdef.NonUI) continue;
var fld = new JSONDataMap();
fields.Add(fld);
fld["def"] = FieldDefToJSON(row, schemaName, fdef, target, isoLang, valueListLookup);
var val = row.GetClientFieldValue(this, sfdef, target, isoLang);
if (val is GDID && ((GDID)val).IsZero) val = null;
fld["val"] = val;
var ferr = validationError as CRUDFieldValidationException;
//field level exception
if (ferr!= null && ferr.FieldName==fdef.Name)
{
fld["error"] = ferr.ToMessageWithType();
fld["errorText"] = OnLocalizeString(schemaName, "errorText", ferr.ClientMessage, isoLang);
}
}
//record level
if (validationError!=null && !(validationError is CRUDFieldValidationException))
{
result["error"] = validationError.ToMessageWithType();
result["errorText"] = OnLocalizeString(schemaName, "errorText", validationError.Message, isoLang);
}
return result;
}