Anuj Mehta Ответов: 2

Как установить ширину столбца datatable ?


Using Max-length for width of column i tried but it is snot working,
row-span is also not worked 

I want to change width of first column witch is dynamically generated from database using string builder sp.append


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

foreach (DataColumn column in dt2.Columns)
                        {
                            sb.Append("<th width='20%' style = 'background-color: #e7e7e7;color:#000000'>");
                            sb.Append(column.ColumnName);
                            sb.Append("</th>");                            
                        }
                        sb.Append("</tr>");
                        foreach (DataRow row in dt2.Rows)
                        {
                            sb.Append("<tr>");
                            foreach (DataColumn column in dt2.Columns)
                            {
                                sb.Append("<td style='font-size:12px;line-height:26px;'>");
                                sb.Append(row[column]);
                                sb.Append("</td>");
                            }
                            sb.Append("</tr>");
                        }

2 Ответов

Рейтинг:
5

Karthik_Mahalingam

Цитата:
Я хочу изменить ширину первого столбца, который динамически генерируется из базы данных с помощью string builder sp.append

for (int i = 0; i < dt2.Columns.Count; i++)
            {
                string width = i == 0 ? "'50%'" : "'20%'"; // first column will be 50% and others 20%
                sb.Append("<th width=" + width+" style = 'background-color: #e7e7e7;color:#000000'>");
                sb.Append(dt2.Columns[i].ColumnName);
                sb.Append("</th>");
            }


Anuj Mehta

Тот же выход, никаких изменений в моей ширине,
это не работает, пожалуйста, дайте мне любое другое предложение .

Karthik_Mahalingam

покажите свой полный код.
попробую повторить

Karthik_Mahalingam

зачем публиковать и удалять его?

Anuj Mehta

потому что значение между <" "> не отображается.

Karthik_Mahalingam

используйте предварительную метку

Anuj Mehta

 using (StringWriter sw = new StringWriter())
                {
                    using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                    {
                        StringBuilder sb = new StringBuilder();
                        //Generate Invoice (Bill) Header.                       
                        sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>");
                        
                        sb.Append("<table style='width:10px;' border = '1'>");
                        sb.Append("<tr>");
                        for (int i = 0; i < dt2.Columns.Count; i++)
                        {
                            string width = i == 0 ? "'50%'" : "'20%'"; // first column will be 50% and others 20%
                            sb.Append("<th width=" + width + " style = 'background-color: #e7e7e7;color:#000000'>");
                            sb.Append(dt2.Columns[i].ColumnName);
                            sb.Append("</th>");
                        }
                        sb.Append("</tr>");
                        foreach (DataRow row in dt2.Rows)
                        {
                            sb.Append("<tr>");
                            foreach (DataColumn column in dt2.Columns)
                            {

                                sb.Append("<td style='width:80px;'>");
                                sb.Append(row[column]);
                                sb.Append("</td>");
                            }
                            sb.Append("</tr>");
                        }
                        sb.Append("<tr colspan = '5' rowspan ='3'>");
                        sb.Append("<td align='center'>");
                        sb.Append(objPurchaseOrderBO.TotalInWord);
                        sb.Append("</td>");
                        sb.Append("<th colspan = '3'> Total TAX");
                        sb.Append("</th>");
                        sb.Append("<td>");
                        sb.Append(totalTaxValue.Text);
                        sb.Append("</td>");
                        sb.Append("</tr>");
                        sb.Append("</table>");

                        //Export HTML String as PDF.
                        StringReader sr = new StringReader(sb.ToString());
                        Document pdfDoc = new Document(PageSize.A3, 40f, 40f, 20f, 0f);
                        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                        PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                        pdfDoc.Open();
                        htmlparser.Parse(sr);
                        pdfDoc.Close();
                        Response.ContentType = "application/pdf";
                        Response.AddHeader("content-disposition", "attachment;filename=Invoice_" + orderNo + ".pdf");
                        Response.Cache.SetCacheability(HttpCacheability.NoCache);
                        Response.Write(pdfDoc);
                        Response.End();
                    }
                }

Karthik_Mahalingam

вы экспортируете в pdf-файл?

Anuj Mehta

да экспортировав ее в PDF

Karthik_Mahalingam

но в td вы устанавливаете ширину
СБ.Добавить("");

сделать его равномерным по

Anuj Mehta

я попробовал его, но он не работает.

Karthik_Mahalingam

можете ли вы опубликовать его скриншот

Anuj Mehta

                        sb.Append("<table style='width:10px;' border = '1'>");
                        sb.Append("<tr>");

                        //foreach (DataColumn column in dt2.Columns)
                        //{
                        //    sb.Append("<th style = 'width:40%;background-color: #e7e7e7;color:#000000'>");
                        //    sb.Append(column.ColumnName);
                        //    sb.Append("</th>");
                        //}
                        for (int i = 0; i < dt2.Columns.Count; i++)
                        {
                            string width = i == 0 ? "'50%'" : "'20%'"; // first column will be 50% and others 20%
                            sb.Append("<th width=" + width + " style = 'background-color: #e7e7e7;color:#000000'>");
                            sb.Append(dt2.Columns[i].ColumnName);
                            sb.Append("</th>");
                        }

                        sb.Append("</tr>");
                        foreach (DataRow row in dt2.Rows)
                        {
                            sb.Append("<tr>");
                            foreach (DataColumn column in dt2.Columns)
                            {
                                for (int i = 0; i < dt2.Rows.Count; i++)
                                {
                                    string width = i == 0 ? "'50%'" : "'20%'";
                                    sb.Append("<td  width=" + width + ">");
                                    sb.Append(row[column]);
                                    sb.Append("</td>");
                                }
                            }
                            sb.Append("</tr>");
                        }
 sb.Append("</table>");

Karthik_Mahalingam

это работает?>

Anuj Mehta

 not working sir plzz check screenshot hear

http://websitedevelopervadodara.blogspot.in/2017/10/change-width-of-product-description-hsn.html

Karthik_Mahalingam

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

Anuj Mehta

 thank you very much its working using your code 

  for (int i = 0; i < dt2.Columns.Count; i++)
                        {
                            string width = i == 0 ? "2" : "1"; // first column will be 50% and others 20%
                            sb.Append("<td colspan=" + width + " rowspan='0' style = 'background-color: #e7e7e7;color:#000000'>");
                            sb.Append(dt2.Columns[i].ColumnName);
                            sb.Append("</td>");
                        }

Karthik_Mahalingam

Круто

Рейтинг:
1

OriginalGriff

Таблицы данных, потоки данных и DataColumns не имеют никакой ширины или высоты - они не представлены непосредственно пользователю и не имеют пользовательского интерфейса - ширина и высота имеют отношение только к элементам управления презентацией, которые отображают содержащиеся в них данные.

В этом случае вы используете HTML-таблицы для отображения ваших данных, поэтому вы (правильно) используете th width настройка, но у вас неправильный формат: В HTML-е ширина атрибута[^] - этот 20% должно быть в двойных кавычках:

sb.Append("<th width=\"20%\" style = 'background-color:...
Или включен в CSS style:
sb.Append("<th style='width:20%;background-color:...