我有一个asp.net应用程序,我需要在页面中创建一个运行时html表。该函数从数据库中获取数据,并在页面上创建html表和渲染的运行时。该表包含6-8列和150-200行,每行包含一些输入测试框。一切正常,但在aspx页面中呈现html表时存在性能问题。以下是代码。
private string GenereateTableData(int rowCount, MyDataList obDataList)
{
var table = new StringBuilder();
string image = string.Empty;
try
{
table.AppendFormat("<tr id='trModelDetail" + rowCount + "' name='RECORDNUM" + rowCount + "' >");
table.AppendFormat("<td class='aa' align='left' width='80px' style='background-color: #fcfae6;' >");
table.AppendFormat("<input type='text' name='' id='" + rowCount.ToString() + "' readonly='1' style='width: 75px;background-color: #fcfae6;' class='ActionTBox' maxlength='4' onblur='hideMsgDiv();' value='" + rowCount + "'/>");
table.AppendFormat("</td>");
table.AppendFormat("<td class='stdformfont' align='left' width='80px'>");
table.AppendFormat("<input type='text' name='aa' id='aa' style='width: 75px;' class='' maxlength='10' />");
table.AppendFormat("<input type='text' name='aa' id='aa' style='width: 75px;display:none; class='ActionTeox' maxlength='10' />");
table.AppendFormat("</td>");
table.AppendFormat("</tr>");
return table.ToString();
}
catch (Exception)
{
throw;
}
finally
{
table = null;
}
}
private void ShowData(MyDataList obDataList)
{
var table = new StringBuilder();
try
{
table.AppendFormat("<table id='modelDetailsTable' cellpadding='0' cellspacing='0' border='0'>");
for (int iCount = 0; iCount < obDataList.Count; iCount++)
{
// Fill the table with data
table.AppendFormat(GenereateTableData(iCount, obDataList[iCount]));
}
table.AppendFormat("</table>");
// Show table in UI
divData.InnerHtml = table.ToString();
}
catch (Exception)
{
throw;
}
finally
{
table = null;
}
}
答案 0 :(得分:0)
更好的方法是在客户端创建HTML表结构,然后传递数据。这将减少从服务器到客户端的大量重复数据传输。您可以使用ClientScript.RegisterStartupScript将JQuery函数与数据一起调用并在客户端进行处理。
希望这有帮助。