| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка под ASP.NET > DataGrid & JavaScript |
| Автор: cosamia 8.3.2006, 11:19 |
| Есть на датагриде несколько кнопок, хочу к одной из них привязать ф-ю на javascript - confirm. Но при привязке через атрибут функции на onclick получится что ф-я будет вызываться на все кнопки грида. Каким образом это можно избежать? |
| Автор: arilou 9.3.2006, 18:51 |
| cosamia, судя по тому, что до сих пор не было ответов, вопроса никто не понял. Перефразируй пожалуйста. |
| Автор: Exception 9.3.2006, 19:41 |
| Погоди-ка. Ты о датагриде для web? О каких кнопках идет речь? И неплохо бы все это подкрепить примером |
| Автор: arilou 9.3.2006, 19:55 | ||
| Вниииимательнее читаем название форума -
|
| Автор: cosamia 9.3.2006, 19:56 | ||
| речь о вебе, потому тема находится в асп.нет вот мой грид:
как видно в гриде 2 ряда кнопок. на каждую надо навесить свою ф-ю из JS а потом передать управление уже непосредственно обработчику OnItemCommand пробовал через datagrid1.attribute.add("onclick", "..." но это крепиться на все кнопки...а мне надо на кнопки первого ряда 1 ф-ю, а на кнопки 2-го другую |
| Автор: arilou 9.3.2006, 20:05 |
| cosamia, 1) прицепляемся к событию DataGrid.ItemCreated. 2) Вызываем e.Item.FindControl("cmd1").Attributes.Add("onclick", "func1();") 3) Вызываем e.Item.FindControl("cmd2").Attributes.Add("onclick", "func2();") И будет тебе счастье |
| Автор: cosamia 10.3.2006, 18:28 |
| сделал так: Private Sub SomeDataGrid_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles SomeDataGrid.ItemCreated Select Case e.Item.ItemType Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem Dim myTableCell As TableCell myTableCell = e.Item.Cells(3) 'номер столбца Dim myDeleteButton As LinkButton myDeleteButton = myTableCell.Controls(0) myDeleteButton.Attributes.Add("onclick", "func1();") End Select End Sub такой вариант работает но тут непонятная проблема: у меня первым столбцом грида идет тектовое значение, вторым кнопка. по нажатию я хочу передать в javascript значение из 1 столбца этой строки В SomeDataGrid_ItemCreated делаю так: Dim param1 As String = e.Item.Cells(0).Text далее начинается непонятное: значение пустое. Более того если положу на форму label c тесктом лабел1 (т.е. как оно идет по умолчанию) и попытаюсь присвоить ей значение из param1 то еще до нажатия на кнопку label пустой. В тоже время в OnItemComman Dim param1 As String = e.Item.Cells(0).Text определяется правильно... В чем тут проблема? |
| Автор: arilou 10.3.2006, 18:36 |
| cosamia, опять лень было код отформатировать? Надо использовать метод FindControl. |
| Автор: cosamia 10.3.2006, 18:46 |
| в каком месте и для кого использовать? можно поконкретнее плиз? |
| Автор: arilou 10.3.2006, 18:51 |
| Метод используется для поиска вложенных контролов по имени. Посмотри MSDN и, думаю, все станет ясно. |