Ana içeriğe geç

Komut Dizisi Veri Kaynağı

Bu veri kaynağı bir komut dizisi yürütür ve sonucu değer listesi olarak döndürür.

Komut dizisi veri kaynağı, form denetimleri için dinamik olarak veri oluşturmak üzere özel komut dizilerinin yürütülmesini sağlar.

Komut dizisinin sonucu, her biri değer listesindeki bir seçeneğin özelliklerini tanımlayan nesnelerden oluşan bir dizi olmalıdır.

Komut dizisi, eşzamansız işlemleri de async/await örüntülerini kullanarak destekler. Komut dizisinin 500ms süre içinde tamamlanması beklenir; aksi hâlde kullanıcıya bir ilerleme iletişim kutusu gösterilir.

Örnek

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<ScriptDataSource TextFormat="{{name}}" ValueFormat="{{value}}">
    <Mappings/>
    <Source>
        <Content><![CDATA[

return [
    {
        name: 'A',
        value: 1
    },
    {
        name: 'B',
        value: 2
    }
];

]]></Content>
    </Source>
</ScriptDataSource>

Bu örnekte:

  • TextFormat şu değere ayarlanmıştır {{name}}; bu, komut dizisinin döndürdüğü her nesnedeki name özelliğinin görüntü metni olarak kullanılacağını belirtir.
  • ValueFormat şu değere ayarlanmıştır {{value}}; bu, her nesnedeki value özelliğinin temel değer olarak kullanılacağını belirtir.
  • öğesi Source öğesini içerir; bu öğe Content yürütülecek komut dizisini kapsüller.
  • Komut dizisi, iki nesneden oluşan statik bir dizi döndüren basit bir JavaScript kod bloğudur. Her nesnede, veri kaynağını doldurmak için kullanılacak name ve value özellikleri bulunur.

Özetle, bu veri kaynağı sağlanan JavaScript kodunu çalıştırarak iki öğeden oluşan bir liste oluşturur. İlk öğenin görüntü metni "A", değeri 1; ikinci öğenin görüntü metni "B", değeri 2 olur.

Asenkron Destek

Komut dizilerinin harici sistemlerle etkileşim kurması veya komut dizisi modüllerini veri almak için çağırması gereken senaryolarda, kullanıcı arayüzünün duyarlı kalması için asenkron işlemler önem kazanır.

Komut dizisi veri kaynağı, JavaScript'in Promise nesnesini ve async/await işlev çağrılarının tamamlanmasını asenkron olarak bekleme söz dizimini tam olarak destekler. Bu tür asenkron işlemler yürütülürken, işlem başarıyla tamamlanana kadar kullanıcı arayüzünde bir yükleme ilerleme göstergesi görüntülenir. Bu, uzun sürebilecek veri alma işlemleri sırasında kullanıcı arayüzünün yanıt vermemesi sorununu önler.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<ScriptDataSource TextFormat="{{name}}" ValueFormat="{{value}}">
    <Mappings/>
    <Source>
        <Content><![CDATA[

return await MyModule.MyMethodAsync();

]]></Content>
    </Source>
</ScriptDataSource>