最终目标是让我的用户输入文本(通过按","或输入)变成标签,类似于屏幕截图
标签只是我想要实现的数据表单的一部分 .
我尝试了 AutoCompleteInline
编辑器,其中包含DataForm附带的 autoCompleteDisplayMode="tokens"
. 如果我提供带有一些字符串的 valueProvider
,并且我开始输入并选择一个条目 - 它会正确变成令牌 .
但是,我想让我的用户添加新标签(例如,不是 valueProvider
中的条目成员) . 我试图在"from"属性上监听事件(验证,验证,提交,提交),但是当我输入时它们似乎没有在dataform属性上触发 - 它们只在我从valueProvider中选择 existing 项时触发 .
我的想法是以编程方式将 Token
对象(如果可能的话)附加到文本字段以响应"comma-char entered"事件 . 这是我最终结果的最佳方法,如果是,我怎样才能使它工作?
<df:RadDataForm id="dataform" source="{{ booking }}" row="0"
propertyCommit="onPropertyCommit"
propertyCommitted="onPropertyCommitted"
propertyValidate="onPropertyValidate"
propertyValidated="onPropertyValidated">
<df:RadDataForm.properties>
<df:EntityProperty name="from" displayName="From:" index="0" autoCompleteDisplayMode="tokens"
valuesProvider="{{ fromProviders }}">
<df:EntityProperty.editor>
<df:PropertyEditor type="AutoCompleteInline"/>
</df:EntityProperty.editor>
</df:EntityProperty>
<df:EntityProperty name="to" displayName="To:" index="1" autoCompleteDisplayMode="plain"
valuesProvider="New York, Washington, Los Angeles">
<df:EntityProperty.editor>
<df:PropertyEditor type="AutoCompleteInline"/>
</df:EntityProperty.editor>
</df:EntityProperty>
<df:EntityProperty name="year" displayName="year:" index="2">
<df:EntityProperty.editor>
<df:PropertyEditor type="Text"/>
</df:EntityProperty.editor>
</df:EntityProperty>
</df:RadDataForm.properties>
</df:RadDataForm>
code behind
let page: Page;
let booking = {
from: '',
to:'',
year:"2"
};
let dataform;
export function navigatingTo(args: EventData) {
page = <Page> args.object;
page.bindingContext = {"booking": booking, "fromProviders": ["asd"]};
dataform = page.getViewById<RadDataForm>("dataform");
}
export function onPropertyCommit(arg: DataFormEventData) {
console.log("onPropertyCommit");
}
export function onPropertyCommitted(arg: DataFormEventData) {
console.log("onPropertyCommitted");
}
export function propertyValidate(arg){
console.log('propertyValidate')
}
export function onPropertyValidated(arg){
console.log('propertyValidated')
}