تعيين التحديد في وحدة تحكم قائمة الرمز البريدي

StackOverflow https://stackoverflow.com/questions/2795867

  •  04-10-2019
  •  | 
  •  

سؤال

لديّ وحدة تحكم قائمة في مشروع DashCode الخاص بي ، وهو يسحب بياناته من مصدر ديناميكي.

بعد أن قامت وحدة التحكم في القائمة بتحميل بياناتها ، أود تعيين فهرس محددها على 0 - بحيث يتم عرض المعلومات للعنصر الأول في القائمة. لا أستطيع لحياة لي معرفة كيفية القيام بذلك. لقد حاولت:

function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    //list.setSelectionIndexes(0); // nope
    //list.selectedIndex = 0; // nope
}
هل كانت مفيدة؟

المحلول

لا حاجة لكتابة أي رمز لذلك. قم بتحرير خصائص القائمة في المفتش وإلغاء تحديد الاختيار الفارغ في علامة التبويب السمات. مع عدم وجود اختيار فارغ سمح سيتم تحديد العنصر الأول في القائمة عند تحميل القائمة.

نصائح أخرى

فيما يلي مثال لاختيار عنصر معين بناءً على اسمه. بالنسبة لهذا السؤال ، يمكنك ببساطة تعيين فهرس 0 بشكل صريح - أعتقد أن إجابة Vicente أكثر ملاءمة للسؤال المطروح ، ولكن هذا يمكن أن يكون مفيدًا لاختيار عنصر استنادًا إلى QueryString ، إلخ.

function load()
{
    dashcode.setupParts();

    setSelectedItem();
}

function setSelectedItem()
{
    var itemSource = dashcode.getDataSource("itemsSource");
    var inProgress = itemSource.valueForKey("queryInProgress");

    if(inProgress)
    {
        setTimeout("setSelectedItem()", 200);
    }
    else
    {
        var items = itemSource.valueForKeyPath("content.items")
        for(i=0;i<items.length;i++)
        {
            if(items[i].name.toLowerCase() == "specificItemName")
            {
                document.getElementById("list").object.setSelectionIndexes([i]);
            }
        }
    }
}
function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    list.setSelectionIndexes([0]);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top