2015-08-02 4 views
1

Я в проекте asp.net C#. Я хочу напечатать карту сотрудников со штрих-кодом. Поэтому я пишу html-тег в строковой переменной call htmlCon, и он свяжет тег DIV на стороне клиента (забирайте всех сотрудников и зацикливайте их для печати один за другим). это хорошо работает. но внутри переменной htmlCon имеет функцию java-скрипта, которая не будет работать в цикле.Функция JavaScript в C# asp.net кнопка click событие не работает

protected void btnGenarate_ClickEvent(object sender, EventArgs e) 
{ 
    ...... 

    foreach (var item in empDetails) 
    { 
     htmlCon += ..........+ 

"<script>"+ 
"$(document).ready(function()"+ 
"{ $('#barcode').JsBarcode('"+ item.EmployeeNo + "', { width: 1, height: 30 }); });"+ 
"</script>" + 
"<img id='barcode' class='barcode'/>" +   

"........................................"+ 
    } 
} 

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

ответ

1

Вы генерируете много изображений с одинаковым идентификатором, вы должны сгенерировать новый идентификатор для каждой итерации цикла. Я бы также рекомендовал использовать StringBuilder вместо кучу строк сцеплений:

protected void btnGenarate_ClickEvent(object sender, EventArgs e) 
    {    
     StringBuilder htmlCon = new StringBuilder(); 

     for (int i = 0; i < empDetails.Count; i++) 
     { 
      htmlCon.AppendFormat("<script>$(document).ready(function() { $('#barcode{0}').JsBarcode('{1}', { width: 1, height: 30 }); });</script><img id='barcode{0}' class='barcode'/>", 
       i.ToString(), empDetails[i].EmployeeNo); 

      htmlCon.Append("........................................"); 
     } 

     //To Use StringBuilder value 
     string html = htmlCon.ToString(); 
    } 
+0

Спасибо .. Я получил ответ на это .. $ ('# штрих-код {0}') JsBarcode ('{1. } ', {width: 1, height: 30}); –

Смежные вопросы