Рассматривали ли вы просто создание собственного веб-элемента управления.Я создал быстрый, который принимает массив [,] и просто выводит содержимое массива в div с p вокруг каждого значения массива.Он простой, легкий и у вас будет полный контроль над выводом.
Вот шаг, который вам нужно реализовать:
Добавьте новый проект в ваше веб-приложение и убедитесь, что вы ссылаетесь на System.веб.Возможно, вызовите проект WebControls.
Добавьте следующий код C # в новый файл класса, который вы можете добавить в проект.
КОД ТАМОЖЕННОГО УПРАВЛЕНИЯ:
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebControls
{
[ToolboxData("<{0}:ArrayDisplayControl runat=server></{0}:ArrayDisplayControl>")]
public class ArrayDisplayControl : WebControl
{
protected override HtmlTextWriterTag TagKey
{
get
{
return HtmlTextWriterTag.Div;
}
}
public string[,] DataSource
{
get
{
return (string[,])ViewState["DataSource"];
}
set
{
ViewState["DataSource"] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.WriteBeginTag("div");
for (int i = 0; i < DataSource.GetLength(0); i++)
{
for (int j = 0; j < DataSource.GetLength(1); j++)
{
output.WriteFullBeginTag("p");
output.Write(DataSource[i, j]);
output.WriteEndTag("p");
}
}
output.WriteEndTag("div");
}
}
}
Теперь все, что вам нужно сделать, - это добавить недавно добавленный проект в ваше веб-приложение.свойства -> добавить ссылку - выберите проекты, а затем имя нового проекта.
Хорошо, все, что осталось - добавить объявление в верхней части страницы asp.net, чтобы вы могли ссылаться на пользовательский элемент управления, напримерследующее:
<%@ Register Assembly="WebControls" Namespace="WebControls" TagPrefix="custom" %>
Теперь ссылка на элемент управления в вашем html выглядит следующим образом:
<custom:ArrayDisplayControl ID="ctlArrayDisplay" runat="server" />
Хорошо, так что последний шаг - привязать элемент управления к некоторым данным в коде - что-тонапример:
protected void Page_Load(object sender, EventArgs e)
{
string[,] data = new string[2, 2] { { "Mike", "Amy" }, { "Mary", "Albert" } };
ctlArrayDisplay.DataSource = data;
ctlArrayDisplay.DataBind();
}
А вот вывод после запуска:
<div id="ctlArrayDisplay">
<div><p>Mike</p><p>Amy</p><p>Mary</p><p>Albert</p></div>
</div>
Надеюсь, это поможет вам выйти из варенья.
Наслаждайтесь!