ADI@345 Ответов: 2

Как вызвать функцию внутри string builder в C#


I am trying to generate pdf using Itextsharp , but i am unable to get repeater value inside Itextsharp


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

sb.Append("");
String imageURL = @"*****";
String imageURL1 = @"******";
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("");
sb.Append("<table width="100%" cellspacing="0" cellpadding="2"><tbody><tr><td colspan="4"></td></tr><tr><td></td><td></td><td></td> <td></td></tr><tr><td style="font-size: 10px" colspan="4">TSW Packaging Solutions</td></tr><tr><td style="font-size: 10px" colspan="4">S No 8, Sagun Niwas Dange Chowk – Tathawade Road, Tathawade, Pune - 411033</td> </tr><tr><td style="font-size: 10px" colspan="2"> REF :- " + lblticket.Text + " </td> <td style="font-size: 10px" colspan="2">Date :-  " + System.DateTime.Today + "</td> </tr><tr><td style="font-size: 10px" colspan="4"> Kind Attn :- " + lblcustomer.Text + " </td>  </tr><tr><td style="font-size: 10px" colspan="4"> M/S. :- " + lblcompany.Text + " </td>  </tr><tr><td style="font-size: 10px" colspan="4"> Subject :- " + txtsubject.Text + " </td>  </tr><tr><td style="font-size: 10px" colspan="4">  " + txtbody.Text + " </td>  </tr><tr><td style="font-size: 10px" colspan="4">  " productbind(); " </td>  </tr></tbody></table>");

Christiaan van Bergen

Вы хотите сказать, что хотите перебрать несколько строк данных, чтобы создать таблицу в вашем PDF-файле?
Не могли бы вы расширить свой вопрос с помощью образца/макета желаемого результата?

ADI@345

да, я должен повторить строку, но исходящую из базы данных..

ADI@345

например, у меня есть таблица, которая поступает из базы данных внутри ретранслятора, для этого я сделал функцию и вызов, но во время создания pdf я не могу вызвать функцию для создания таблицы ..
здесь productbind (); - это функция ..

2 Ответов

Рейтинг:
2

Christiaan van Bergen

Привет,

Я думаю, что вы можете построить что-то с помощью итерации по строкам таблицы при построении своей строки. Что-то в порядке:

(предупреждающий псевдокод)

...
sb.Append("");
// Just construct your layout, e.g. table and styling

// And continue to iterate over your data
foreach(var row in YourCollectionOfRows){
  // include any styling if you like 
  sb.Append($"Customer name: {row.CustomerName}");
  sb.Append($"Ticket number: {row.TicketNumber}");
}

// And finalize the layout (closing the table structure and stuff)
sb.Append("");
...


ХТ Христиан


Рейтинг:
2

#realJSOP

Во-первых, это совершенно нечитабельно. Во-вторых, вы должны либо использовать одинарные кавычки вокруг различных значений атрибутов html, либо избегать двойных кавычек.

sb.AppendLine  ("<table width='100%' cellspacing='0' cellpadding='2'>");
sb.AppendLine  ("    <tbody>");
sb.AppendLine  ("        <tr>");
sb.AppendLine  ("            <td colspan='4'></td>");
sb.AppendLine  ("        </tr>");
sb.AppendLine  ("        <tr><td></td><td></td><td></td> <td></td></tr>");
sb.AppendLine  ("        <tr><td style='font-size:10px;' colspan='4'>TSW Packaging Solutions</td></tr>");
sb.AppendLine  ("        <tr><td style='font-size:10px;' colspan='4'>S No 8, Sagun Niwas Dange Chowk – Tathawade Road, Tathawade, Pune - 411033</td></tr>");
sb.AppendLine  ("        <tr>");
sb.AppendFormat("            <td style='font-size:10px;' colspan='2'> REF :- {0}</td>", lblticket.Text);.AppendLine();
sb.AppendFormat("            <td style='font-size:10px;' colspan='2'>Date :-  {0}</td>", System.DateTime.Today);.AppendLine();
sb.AppendLine  ("        </tr>");
sb.AppendLine  ("        <tr>");
sb.AppendFormat("            <td style='font-size:10px;' colspan='4'> Kind Attn :- {0}</td>", lblcustomer.Text);.AppendLine();
sb.AppendLine  ("        </tr>");
sb.AppendLine  ("        <tr>");
sb.AppendFormat("            <td style='font-size:10px;' colspan='4'> M/S. :- {0}</td>", lblcompany.Text).AppendLine();
sb.AppendLine  ("        </tr>");
sb.AppendLine  ("        <tr>");
sb.AppendFormat("            <td style='font-size:10px;' colspan='4'> Subject :- {0}</td>", txtsubject.Text).AppendLine(); 
sb.AppendLine  ("        </tr>");
sb.AppendLine  ("        <tr>");
sb.AppendFormat("            <td style='font-size:10px;' colspan='4'>  {0}</td>", txtbody.Text).AppendLine();  
sb.AppendLine  ("        </tr>");
sb.AppendLine  ("        <tr>");
//SEE EDIT BELOW
//sb.AppendFormat("            <td style='font-size:10px;' colspan='4'>  {0}</td>", productbind()).AppendLine();
sb.AppendLine  ("        </tr>");
sb.AppendLine  ("    </tbody>");
sb.AppendLine  ("</table>");



Я не знаю, что это такое. productbind метод делает.

РЕДАКТИРОВАТЬ ===============================

Ваши ответы все еще слишком расплывчаты для точной помощи, но это должно быть то, что вы ищете. Я не могу кормить тебя с ложечки больше, чем это, потому что ты раздаешь нам информацию по кусочкам, и, честно говоря, мне надоел этот вопрос. Будь программистом и выкрутись отсюда.
var product = productbind();
sb.AppendFormat("      <td style='font-size:10px;'>{0}</td>", product.field1).AppendLine();
sb.AppendFormat("      <td style='font-size:10px;'>{0}</td>", product.field2).AppendLine();
sb.AppendFormat("      <td style='font-size:10px;'>{0}</td>", product.field3).AppendLine();
sb.AppendFormat("      <td style='font-size:10px;'>{0}</td>", product.field4).AppendLine();


ADI@345

productbind - это функция

#realJSOP

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

ADI@345

я использую repeater для извлечения таблицы из базы данных внутри функции productbind ().. и вызовите функцию productbind (), чтобы получить запись.

#realJSOP

Я отредактировал свой ответ - снова.

ADI@345

сэр, я сделал эту работу ... спасибо за вашу помощь..