2009-07-24 2 views
1

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

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


Edit: this, кажется, работает

ответ

2

Если вы создаете таблицу программно, используя 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. 
0

Ну, твой вопрос довольно сложно, но я дам тебе несколько указателей.

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

JQuery синтаксис для ввода текста в текстовое поле будет иметь следующий вид:

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

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

$("#" + cellId).html() 
1

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

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

$ (документ) .ready (функция() {

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

})

Где CallYourFunction() это ты свою функцию ...

Это в основном подсоединять

onclick = "CallYourFunction();"

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

Кроме того, если вы хотите, чтобы захватить текст внутри клетки, что-то вроде:

$ (документ) .ready (функция() {

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

});

Ознакомьтесь с visualjquery.com для отличной справки для jQuery

1

Это зависит от того, как вы создаете эту таблицу содержимого.

  1. Если Bulding вверх с помощью элемента управления таблицы, вы можете добавить JavaScript для TableCell управления с использованием метода Attributes.Add().

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