Как добавить действия OnClick на стороне клиента в текст в ASP.NET

Я создаю таблицу содержимого на странице ASP.NET и хочу добавить действия OnClick на стороне клиента в каждую ячейку (действие должно заключаться в том, чтобы установить значение именованного элемента управления TextBox в текст в выбранной ячейке). Если бы я мог напрямую добавлять данные в вывод HTML, думаю, я мог бы сделать это с помощью одной строки JavaScript в каждой ячейке.

Учитывая, что я не сейчас использую JQuery (и никогда раньше не использовал), какое самое простое решение для добавления этого (включая время, потраченное на изучение материала)?


Изменить: это похоже работает


person BCS    schedule 24.07.2009    source источник


Ответы (4)


Если вы создаете свою таблицу программно, используя HtmlControls, вы можете установить клиентский атрибут onclick для HtmlTableCell:

HtmlTableCell cell = new HtmlTableCell();
cell.Attributes.Add("onclick", "someFunction();");

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

$('td').click(function(){ // Select all the table cells on the document.
  $(this).html($('#textboxId').val()); // When clicked, change the innerHTML
});                                    // with a textbox value.
person Christian C. Salvadó    schedule 24.07.2009

это зависит от того, как вы создаете эту оглавление.

  1. При сборке с использованием табличного элемента управления можно добавить JavaScript в TableCell управляет с помощью Attributes.Add().

  2. При создании с помощью GridView вы можете добавить JavaScript, когда RowDataBound вызывается событие

person Russ Cam    schedule 24.07.2009

Вы должны дать каждой ячейке класс css... class="contentsCell"

Затем вы можете добавить следующий скрипт в свой тег head (вместе с jquery include)

$(документ).готовый(функция(){

$(".contentsCell").click(function(){
    CallYourFunction();
})

})

Где CallYourFunction() - ваша собственная функция...

Это в основном прикрепит

onclick="ВызовВашейФункции();"

к каждой ячейке td (или любому другому элементу) с классом «contentsCell»

Кроме того, если вы хотите получить текст внутри ячейки, что-то вроде:

$(документ).готовый(функция(){

$(".contentsCell").click(function(){
    var mytext = $(this).text();
    CallYourFunction(mytext);
});

});

Проверьте visualjquery.com для отличного справочника по jquery

person Paul    schedule 24.07.2009

Что ж, ваш вопрос довольно сложен для понимания, но я дам вам несколько советов.

Каждый элемент управления имеет свойство ClientID. Это полезно для внедрения в ваш javascript, чтобы вы знали идентификатор элемента управления на стороне клиента.

Синтаксис jQuery для помещения текста в текстовое поле будет выглядеть следующим образом:

$("#" + clientId).attr("value", theValue);

и синтаксис jQuery для получения текста из ячейки будет таким:

$("#" + cellId).html()
person Max Schmeling    schedule 24.07.2009