Функция стрелка не работает внутри нагрузки AJAX. Но если я напишу это как нормальную функцию, то это работает

Это усиление сообщения vc-74, которое обрабатывает запятые точно так же, как это делает Excel. Excel помещает кавычки вокруг данных, если данные имеют запятую, но не цитируют, если данные не имеют запятой.

    public static string ToCsv(this DataTable inDataTable, bool inIncludeHeaders = true)
    {
        var builder = new StringBuilder();
        var columnNames = inDataTable.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
        if (inIncludeHeaders)
            builder.AppendLine(string.Join(",", columnNames));
        foreach (DataRow row in inDataTable.Rows)
        {
            var fields = row.ItemArray.Select(field => field.ToString().WrapInQuotesIfContains(","));
            builder.AppendLine(string.Join(",", fields));
        }

        return builder.ToString();
    }

    public static string WrapInQuotesIfContains(this string inString, string inSearchString)
    {
        if (inString.Contains(inSearchString))
            return "\"" + inString+ "\"";
        return inString;
    }
0
задан Jack Moody 16 January 2019 в 17:55
поделиться

1 ответ

Контекст этой функции onload должен быть исходным XMLHttpRequest, но при использовании функции стрелки у вас нет назначенного контекста, поэтому он, скорее всего, будет родительской областью или окном. Это будет проблемой.

0
ответ дан Harry Chilinguerian 16 January 2019 в 17:55
поделиться
Другие вопросы по тегам:

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