Vadivel Murthy Ответов: 1

Как дать ссылку на столбец в datatable to HTML exporter


мне нужно добавить ссылку на столбец (meetingID) при экспорте datatable в HTML

я добавил выходные данные и код, который я использую для преобразования Datatable в HTML

Что я уже пробовал:

public bool ExportToHtml(out string path)

        {
            DataTable dt = ToDataTable(_collection,_selectedColumns);
            StringBuilder strHTMLBuilder = new StringBuilder();
            strHTMLBuilder.Append("<html >");
            strHTMLBuilder.Append("<head>");
            strHTMLBuilder.Append("</head>");
            strHTMLBuilder.Append("<body>");
            strHTMLBuilder.Append("<table border='1px solid black' cellpadding='1' cellspacing='1' bgcolor='LightYellow' style='font-family:Garamond; font-size:medium; width=100%'>");

            strHTMLBuilder.Append("<tr width=100%  >");
            foreach (DataColumn myColumn in dt.Columns)
            {
                strHTMLBuilder.Append("<td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >");
                strHTMLBuilder.Append(myColumn.ColumnName);
                strHTMLBuilder.Append("</td>");

            }
            strHTMLBuilder.Append("</tr>");


            foreach (DataRow myRow in dt.Rows)
            {

                strHTMLBuilder.Append("<tr >");
                foreach (DataColumn myColumn in dt.Columns)
                {
                    strHTMLBuilder.Append("<td >");
                    strHTMLBuilder.Append(myRow[myColumn.ColumnName].ToString());
                    strHTMLBuilder.Append("</td>");

                }
                strHTMLBuilder.Append("</tr>");
            }

            //Close tags.  
            strHTMLBuilder.Append("</table>");
            strHTMLBuilder.Append("</body>");
            strHTMLBuilder.Append("</html>");

            string Htmltext = strHTMLBuilder.ToString();
            path = string.Format("{0}\\{1}.{2}", _basepath, _filename, "html");
            System.IO.File.WriteAllText(path, Htmltext);

            //return Htmltext;
            return true;

        }


<html ><head></head><body><table border='1px solid black' cellpadding='1' cellspacing='1' bgcolor='LightYellow' style='font-family:Garamond; font-size:medium; width=100%'><tr width=100%  ><td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >Meeting ID</td><td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >Portfolio Manager Name </td><td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >IVZ Meeting Cutoff Date GMT</td><td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >IVZ Meeting CutOff Date Local</td><td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >local time</td><td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >Issuer Name</td><td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >Ticker</td></tr><tr ><td >1190516</td><td >Josh Goldstein</td><td >2018-01-18 16:00:00</td><td >2018-01-18 10:00:00</td><td >CST/CDT</td><td >Siemens AG</td><td >SIE</td></tr></table></body></html>

Karthik_Mahalingam

например, к чему?
URL-адрес ?

1 Ответов

Рейтинг:
1

debasish mishra

Я предлагаю вам добавить гиперссылки в сам sql-запрос, когда вы формируете столбцы таблицы, как показано ниже.

SELECT '<a href="'
       + HyperLink
       + '">'
       + TextLink
       + '</a>'
FROM YourTable

<или>

public bool ExportToHtml(out string path)

        {
            DataTable dt = ToDataTable(_collection,_selectedColumns);
            StringBuilder strHTMLBuilder = new StringBuilder();
            strHTMLBuilder.Append("<html >");
            strHTMLBuilder.Append("<head>");
            strHTMLBuilder.Append("</head>");
            strHTMLBuilder.Append("<body>");
            strHTMLBuilder.Append("<table border='1px solid black' cellpadding='1' cellspacing='1' bgcolor='LightYellow' style='font-family:Garamond; font-size:medium; width=100%'>");

            strHTMLBuilder.Append("<tr width=100%  >");
            foreach (DataColumn myColumn in dt.Columns)
            {
                strHTMLBuilder.Append("<td style='font-size:medium; font-weight:bold;width=100%; padding-right: 30px' >");
                strHTMLBuilder.Append(<big><pre>"<a href='"HyperLink"'>'"myColumn.ColumnName"'</a>"
);
strHTMLBuilder.Добавлять("");

}
strHTMLBuilder.Добавлять("");


по каждому элементу (объекта datarow myRow в ДТ.Строк)
{

strHTMLBuilder.Добавлять("");
оператор foreach (datacolumn, на столбец mycolumn компонент компонент на ДТ.Столбцы)
{
strHTMLBuilder.Добавлять("");
strHTMLBuilder.Append(myRow[myColumn.Имя столбца].Метод toString());
strHTMLBuilder.Добавлять("");

}
strHTMLBuilder.Добавлять("");
}

//Закрыть теги.
strHTMLBuilder.Добавлять("");
strHTMLBuilder.Добавлять("");
strHTMLBuilder.Добавлять("");

строка Htmltext = strHTMLBuilder.Метод toString();
строка пути.Формат("{0}\\{1}.{2}", _basepath, _filename, "html");
System.IO.File.WriteAllText(путь, Htmltext);

//возвращаемое значение htmltext;
вернуть true;

}
Пожалуйста, проголосуйте, если это решение поможет.


Vadivel Murthy

@Debasish Mishra,

Спасибо за ответ, данные , которые я получаю из процедуры хранения, и я хочу дать ссылку только для одного столбца (meetingId) первого столбца
strHTMLBuilder.Добавлять("");
strHTMLBuilder.Добавлять(

"<a href=""HyperLink"">myColumn.ColumnName</a>"
for the above code it will create link for column , i want to link to column value , ex:-> the meetingid column have row value 1234 should have link

[no name]

Затем сделайте то же самое во втором для каждого цикла, как я сделал это для заголовка столбца, а для данных первого столбца используйте логику, где count всегда один для каждой строки данных и то же самое для заголовка столбца.