Как получить innerHTML таблицы в C # - PullRequest
3 голосов
/ 22 июля 2011
 HtmlTable baseCalendar = new HtmlTable();
 HtmlTableRow calendarRow=new HtmlTableRow();
 HtmlTableCell calendarCell = new HtmlTableCell();

 for(int i=0;i<6;i++){
       calendarCell = new HtmlTableCell();

       calendarCell.Controls.Add(new LiteralControl(i.ToString()));
       calendarCell.Style.Add("color", "red");
       calendarRow.Cells.Add(calendarCell);

 }



 string resutlt=baseCalendar.innerHtml.Tostring();

эта строка говорит об ошибке: HtmlTable 'не поддерживает свойство InnerHtml ?????

Ответы [ 4 ]

6 голосов
/ 22 июля 2011

Я надеюсь, что вам нужен HTML-код для созданной вами таблицы, который не может быть достигнут с помощью innerHTML, который действителен в случае div, здесь вам лучше использовать RenderControl что-то в этих строках

StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
baseCalendar.RenderControl(htw)
1 голос
/ 22 июля 2011

Здесь вы должны использовать запись таблицы вручную вместо использования HtmlTable

 string str = "<table>";
                for (int i = 0; i < 6; i++)
                {
                    str += "<tr><td style='color:red'>" + i.ToString() + "</td></tr>";
                }
                str += "</table>";
                mainDiv.InnerHtml = str;

И на странице ASPX

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

</head>
<body>
    <form id="form1" runat="server">
    <div runat="server" id="mainDiv">
    </div>
    </form>
</body>
</html>
1 голос
/ 22 июля 2011

От: http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable.innerhtml%28VS.80%29.aspx

Не читать и не присваивать значение этому свойству. В противном случае выдается исключение System.NotSupportedException. Это свойство унаследовано от класса HtmlContainerControl и неприменимо к классу HtmlTable.

0 голосов
/ 22 июля 2011

HtmlTable имеет свойство InnerHtml: http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable.aspx

Вам не хватает заглавных букв:

string resutlt=baseCalendar.innerHtml.Tostring(); // note innerHtml -> InnerHtml

Однако, даже если он скомпилируется, вы должны заметить, что:

Внимание

Не читать и не присваивать значение этому свойству. В противном случае выдается исключение System.NotSupportedException. это свойство наследуется от класса HtmlContainerControl и не является применимо к классу HtmlTable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...