Syf AK Ответов: 1

Как вставить надписи в ячейки таблицы при клике на кнопку


У меня есть таблица, которую я динамически генерирую на основе пользовательского ввода. Я пытаюсь вставить текст метки в ячейку таблицы при нажатии кнопки. onclick of button текст метки демонстрационного метода должен быть вставлен в ячейки таблицы с помощью javascript/ajax. Может ли кто-нибудь подсказать мне, как я могу это сделать?

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

<pre>function CreateTable(){
    var rowCtr;
    var cellCtr;
    var rowCnt;
    var cellCnt;

    var myTableDiv = document.getElementById('myDynamicTable');

    var table = document.createElement('table');
    table.setAttribute("contenteditable", "true");
    table.border = "1";
    table.id = "myTable";


    var tableBody = document.createElement('tbody');
    table.appendChild(tableBody);

    rowCnt = document.getElementById('txtrows').value;
    cellCnt = document.getElementById('txtcols').value;

    for (rowCtr = 0; rowCtr < rowCnt; rowCtr++) {

        var tr = document.createElement('tr');
        tableBody.appendChild(tr);

        for (cellCtr = 0; cellCtr < cellCnt; cellCtr++) {

            var td = document.createElement('td');
            td.width = '120';
            td.appendChild(document.createTextNode("Row:" + rowCtr + " Column:" + cellCtr));
            tr.appendChild(td);
        }
    }
    myTableDiv.appendChild(table);
  }

кнопка asp:
<asp:Button ID="button1" Text="button" runat="server" OnClick="demo" />


Код C# :

public void demo()
{
    TableCell tcell = new TableCell();
    RadLabel rlbl = new RadLabel();
    rlbl.Text = "test";
    tcell.Controls.Add(rlbl);

}

protected void demo(object sender, EventArgs e)
{
    demo();
}

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Вы динамически создаете свой HTML таблица на клиенте (JavaScript) и вы пытаетесь вставить Label контроль на TableCell что не сработает, потому что:

(1) Ваш код C# не знает сгенерированную вами HTML - таблицу-они создаются на клиенте, и между ними есть несвязанное пространство.
(2) Ваш динамический HTML-код будет потерян при каждой обратной передаче, так как ваш сервер не знает состояния ваших динамических элементов управления


Вы не должны смешивать свою реализацию JavaScript с вашим кодом C#, стоящим за логикой. Если вы создаете таблицу с помощью JavaScript, то используйте JavaScript для вставки элемента label.


Syf AK

Спасибо @Vincent. можно ли вставить контрольный текст метки в определенный индекс с помощью java-скрипта??

Vincent Maverick Durano

Вы можете, конечно, можете. Label управление будет отображаться следующим образом <span> элемент в браузере. Так что вы можете использовать innerHTML атрибут ячейки таблицы и вставьте свой промежуток. Например:

table.rows[0].cells[0].innerHTML = '<span>' + 'Test' + '</span>';