Nativescript - средство выбора даты раддатаформ в Android - PullRequest
0 голосов
/ 11 марта 2019

Я использую средство выбора даты в raddataform (Nativescript использует javascript) - Когда я выбираю 31 декабря 2018 года, средство выбора даты отображает дату в следующем формате - Пн, 31.12 Как я могу изменить это на более читаемый формат? Предпочтительно ММ / ДД / ГГГГ Это происходит только в Android - в IOS это более читабельно. Любые рекомендации?

<df:EntityProperty name="prdate" index="3" displayName="Date *" hintText="Enter Date *">
    <df:EntityProperty.editor>
        <df:PropertyEditor type="DatePicker">
            <df:PropertyEditor.propertyEditorStyle>
                <df:PropertyEditorStyle
                        labelHidden="true" labelWidth="0"
                        ios:labelFontName="Times New Roman" android:labelFontName="sans-serif-light"/>
            </df:PropertyEditor.propertyEditorStyle>
        </df:PropertyEditor>
    </df:EntityProperty.editor>
    <df:EntityProperty.validators>
        <df:NonEmptyValidator errorMessage="Please enter a date"/>
    </df:EntityProperty.validators>
</df:EntityProperty>

1 Ответ

0 голосов
/ 11 марта 2019

Изменение формата в DatePicker по-прежнему запрос открытой функции , но существует обходной путь , продемонстрированный уже в той же проблеме.

XML

<Page navigatedTo="navigated" loaded="onPageLoaded" xmlns:df="nativescript-pro-ui/dataform" xmlns="http://www.nativescript.org/tns.xsd">
    <GridLayout rows="100 *" columns="">
        <Label text="Test" textWrap="true" />


    <df:RadDataForm row="1"  id="myDataForm" source="{{ ticketOrder }}" propertyCommitted="dfPropertyCommitted">
        <df:RadDataForm.properties>
            <df:EntityProperty name="movie" displayName="Movie Name" index="0" converter="{{ $value }}" valuesProvider="{{ movieNames }}">
                <df:EntityProperty.editor>
                    <df:PropertyEditor type="Picker" />
                </df:EntityProperty.editor>
            </df:EntityProperty>
            <df:EntityProperty name="date" index="1" >
                <df:EntityProperty.editor>
                    <df:PropertyEditor type="DatePicker" />
                </df:EntityProperty.editor>
            </df:EntityProperty>
            <!--......-->
    </df:RadDataForm>
    </GridLayout>

</Page>

TS

import viewModel = require("./../view-models/ticket-order-model");
import {RadDataForm, EntityProperty} from "nativescript-pro-ui/dataform";
import {isIOS, isAndroid} from "platform";
import {Page} from "ui/page";
declare var NSDateFormatter:any;
declare var java:any;
export function onPageLoaded(args) {
    var page = args.object;
    page.bindingContext = new viewModel.TicketViewModel();
}

export function dfPropertyCommitted(args) {
    //console.log("dfPropertyCommitted");
    var text = "LastEvent: " + args.propertyName + " property committed";
    //console.log(text);
}



export function navigated(args){
    console.log("navigatedTo");
    var page:Page = <Page>args.object;
    console.log("page");
    console.log(page)
    let component:RadDataForm = <RadDataForm>page.getViewById("myDataForm");
    console.log("component");
    console.log(component);
    let entity:EntityProperty = component.getPropertyByName("date");
    console.log("entity");
    console.log(entity);
    console.log("editor")
    if(isIOS){
        console.log(entity.editor.ios);
        var dateFormatter = NSDateFormatter.alloc().init();
        dateFormatter.dateFormat = "MM-yyyy-dd";
        entity.editor.ios.dateFormatter = dateFormatter;
    }else{
        var simpleDateFormat = new java.text.SimpleDateFormat("dd-MM-yyyy", java.util.Locale.US);
        entity.editor.android.setDateFormat(simpleDateFormat);
    }
}
...