Получите данные, связываемые с ListView на событии DataBound

ПОСЛЕ МНОГИХ ЧАСОВ ПОИСКА Я НАШЕЛ РЕШЕНИЕ ДЛЯ ЭТОГО!

Для любого из вас, кому это нужно ... Я решил свою проблему следующим образом:

        $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');

        // Create a temporary file of and write our data to it
        $excel_file_tmp = tempnam("/tmp", 'tmp');
        $writer->save($excel_file_tmp);

        // Now zip the file and move the temporary file to it
        $zip_file_tmp = tempnam("/tmp", 'tmp');
        $zip = new ZipArchive();
        $zip->open($zip_file_tmp, ZipArchive::OVERWRITE);
        $zip->addFile($excel_file_tmp, $job_id.'-space_capture_data.xlsx');
        $zip->close();

Благодаря Arkadiusz G кто предоставил ответ: PHPExcel скачать в виде zip файла

13
задан Fermin 13 May 2009 в 13:40
поделиться

3 ответа

Решение C #

protected void listView_ItemDataBound(object sender, ListViewItemEventArgs e)
{        
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        ListViewDataItem dataItem = (ListViewDataItem)e.Item;
        // you would use your actual data item type here, not "object"
        object o = (object)dataItem.DataItem; 
    }
}

Почему они сделали это так по-другому для ListView, до сих пор меня озадачивает. Однако должна быть причина.

20
ответ дан 1 December 2019 в 21:38
поделиться

Нашел обходной путь, я создал метод для форматирования данных, как мне было нужно, и вызвал его из разметки, используя:

<%# doFormatting(Convert.ToInt32(Eval("Points")))%>
1
ответ дан 1 December 2019 в 21:38
поделиться

Немного поздно, но я постараюсь ответить на ваш вопрос, так как у меня была такая же проблема, и я нашел решение. Вы должны преобразовать свойство Item ListViewItemEventArgs в ListViewDataItem, а затем вы можете получить доступ к свойству DataItem этого объекта, например:

Private Sub listView_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles productsList.ItemDataBound
    If e.Item.ItemType = ListViewItemType.DataItem Then
        Dim dataItem As Object = DirectCast(e.Item, ListViewDataItem).DataItem
    ...
End Sub

Затем вы можете преобразовать объект dataItem к любому типу вашего связанного объекта. Это отличается от того, как работают другие элементы управления привязкой к данным, такие как повторитель, где DataItem является свойством в аргументах события для метода DataBound.

4
ответ дан 1 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

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