Ana içeriğe geç

Komut Dosyası Veri Kaynağı

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

Komut dosyası veri kaynağı, form denetimleri için dinamik olarak veri oluşturmak üzere özel komut dosyalarının çalıştırılmasını sağlar.

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

Komut dosyası, async/await kalıplarını kullanarak eşzamansız işlemleri de destekler. Komut dosyasının 500ms süre içinde tamamlanması beklenir; aksi takdirde kullanıcıya 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 değeri {{name}}olarak ayarlanır; bu, komut dosyasının döndürdüğü her nesnedeki name özelliğinin görüntü metni olarak kullanılacağını belirtir.
  • ValueFormat değeri {{value}}olarak ayarlanır; bu, her nesnedeki value özelliğinin temel değer olarak kullanılacağını belirtir.
  • öğesi, yürütülecek komut dosyasını kapsülleyen Source öğesini içerir. Content
  • Komut dosyası, iki nesneden oluşan statik bir dizi döndüren basit bir JavaScript kod bloğudur. Her nesnede name ve value özellikleri bulunur; bunlar veri kaynağını doldurmak için kullanılır.

Özetle bu veri kaynağı, sağlanan JavaScript kodunu yürüterek 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.

Eşzamansız İşlem Desteği

Komut dosyalarının harici sistemlerle etkileşim kurması veya veri almak için komut dosyası modüllerini çağırması gereken senaryolarda, kullanıcı arayüzünün duyarlı kalması için eşzamansız işlemler zorunludur.

Komut dosyası veri kaynağı, JavaScript'in Promise nesnesini ve işlev çağrılarını eşzamansız olarak beklemeye yönelik async/await söz dizimini tam olarak destekler. Bu tür eşzamansız 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. Böylece uzun sürebilecek veri alma işlemleri sırasında kullanıcı arayüzünün yanıt vermemesi önlenir.

 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>