Как изменить источник данных на YUI datagrid после создания

Если вам нужно menu для обновления webview внутри определенного Fragment, вы можете использовать:

Фрагмент :

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

    // TODO Add your menu entries here
    inflater.inflate(R.menu.menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.exit:
        System.exit(1);
        break;

    case R.id.refresh:
        webView.reload();
        break;
    }
    return true;

}

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/exit" android:title="Exit" android:icon="@drawable/ic_action_cancel" />
    <item android:id="@+id/refresh" android:title="Refresh" android:icon="@drawable/ic_action_refresh" />
</menu>
6
задан Simon_Weaver 23 June 2009 в 21:11
поделиться

3 ответа

Вы были на правильном пути, вы просто забыли указать источнику данных, чтобы он отправлял данные в базу данных. Предполагая, что вы используете LocalDataSource и хотите заменить данные в таблице тем, что находится в источнике данных, после замены liveata вы просто выполняете

dataTable.getDataSource().sendRequest(null,
  {success: dataTable.onDataReturnInitializeTable},
  dataTable);

. Также см. Другие методы onDataReturnXXX DataTable в справочнике API. Вы можете добавить новые данные вместо замены и т. Д.

5
ответ дан 16 December 2019 в 21:45
поделиться

Как я могу обновить источник данных без необходимости полностью воссоздавать таблицу?

Вы имеете в виду без использования «нового» оператора? Если так, мне не приходилось делать это самому, но я часто использую YUI. Я заметил, что есть метод deleteRows, который вы можете использовать для удаления всех строк, от 0 до длины таблицы, а затем использовать addRows, который принимает литеральный массив, такой как ваш, и индекс, 0, в этом случае.

Вы пробовали это?

Изменить: Взгляните на этот пример . То, что вы хотите сделать, определенно можно сделать. Таблица обновляется локально с заданным интервалом с использованием метода setInterval (неудивительно). Взглянув на то, что делает setInterval, вы увидите, что он вызывает makeConnection в экземпляре источника данных. Метод звучит так, как будто он делает удаленный вызов, но это не обязательно.

Давайте взглянем на пару строк из примера.

    // Set up polling
    var myCallback = {
        success: myDataTable.onDataReturnInitializeTable,
        failure: function() {
            YAHOO.log("Polling failure", "error");
        },
        scope: myDataTable
    }
    myDataSource.setInterval(5000, null, myCallback)

последняя строка может вызываться один раз (или по требованию, если вам нужно) вместо интервала, переписав ее следующим образом:

myDataSource.makeConnection(null, myCallBack)

, который вызывает метод onDataReturnInitializeTable , который, я думаю, вы могли бы вызвать напрямую, что будет иметь больше смысла.

В любом случае, просто следуйте примеру и выньте части, которые вам не нужны. В конечном итоге похоже, что метод onDataReturnInitializeTable является ключевым.

Надеюсь, что это поможет.

myDataSource.makeConnection(null, myCallBack)

, который вызывает метод onDataReturnInitializeTable , который, я думаю, вы могли бы вызвать напрямую, что имело бы больший смысл.

В любом случае, просто следуйте примеру и выньте части, которые вам не нужны. В конечном итоге похоже, что метод onDataReturnInitializeTable является ключевым.

Надеюсь, что это поможет.

myDataSource.makeConnection(null, myCallBack)

, который вызывает метод onDataReturnInitializeTable , который, я думаю, вы могли бы вызвать напрямую, что имело бы больший смысл.

В любом случае, просто следуйте примеру и выньте части, которые вам не нужны. В конечном итоге похоже, что метод onDataReturnInitializeTable является ключевым.

Надеюсь, что это поможет.

0
ответ дан 16 December 2019 в 21:45
поделиться

Я просто хотел добавить, что вы можете сохранить разбиение на страницы, если передать вызов getState () в свойстве аргумента.

dataTable.getDataSource().sendRequest(null,
    {
        success: dataTable.onDataReturnInitializeTable,
        argument: dataTable.getState()       
    }
);
3
ответ дан 16 December 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: