powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / onclick в строке Датагрида
25 сообщений из 28, страница 1 из 2
onclick в строке Датагрида
    #32733644
dmitry_cmc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем нужно сделать вот что.
Чтобы в каждой строки грида была ссылочка на другую страничку которая в качестве параметра принимает элемент из строки грида.
Страничка при этом естественно перезагружать не должна.
пробовал просто
<a href="CustomerDetails.aspx?cid=<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>">...</a>

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

Санкс.
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733675
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
Код: plaintext
1.
<a href='CustomerDetails.aspx?cid=<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>'>...</a>
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733696
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733746
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще если мало template column , как вам описали выше, то можно сделать и так, чтобы на щелчок мыши вызывалось popup окно клиентским скриптом.
если нужно именно так, напишите - я покопаюсь в исходниках.
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733764
dmitry_cmc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monstru
да именно оно и нужно, ибо окошко должно быть определенного размера (т.е. просто написасть target="_blank" не подойдет)
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733784
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733796
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733881
dmitry_cmc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все не то.
Нужно чтобы при вызове попапа основное окно не перезагружалось (оптимизируем по скорости), следовательно нужно использовать не серверный контрол.
Что надо использовать понятно. <a href у которого в ссылке будет стоять window.open() открывающий окошко.
Непонятно как засунуть туда параметр из строки грида.
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733977
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
<a onclick="window.open('CustomerDetails.aspx?cid=<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>');
return false;" href="#">...</a>
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733980
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем как я сделал по мотивам какого то примера
1. добавит в список колонок колонку с кнопкой select
2. visible=false у нее
3. все интересное в этой функции

Private Sub dgrdListForums_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgrdListForums.ItemDataBound
Dim itemType As ListItemType = e.Item.ItemType
If ((itemType = ListItemType.Pager) Or _
(itemType = ListItemType.Header) Or _
(itemType = ListItemType.Footer)) Then
Return
Else
Dim button As button = _
CType(e.Item.Cells(1).Controls(0), button)
e.Item.Attributes("onmouseover") = _
"javascript:this.style.backgroundColor='#00C0C0';this.style.cursor='hand';"
e.Item.Attributes("onmouseout") = _
"javascript:this.style.backgroundColor='';this.style.cursor='';"


e.Item.Attributes("onclick") = _
Page.GetPostBackClientHyperlink(button, "")
End If
End Sub

тут
Dim button As button - получает кнопку select
И
e.Item.Attributes("onclick") = _
Page.GetPostBackClientHyperlink(button, "")
к ряду datagrid на событие onclick подвещиваем клиентский обработчик кнопки select.

в вашем случае можно написать
e.Item.Attributes("onclick") = "javascript:showItem()"
showItem - клиентская функция, ей параметром можно передать какое-нибудь зхачение из datagrid. его можно получить из datasource datagrid.
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733987
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык точно также:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<asp:TemplateColumn HeaderText="Удалить">
	<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
	<ItemStyle HorizontalAlign="Center"></ItemStyle>
	<ItemTemplate>
		<a href='webform.aspx/?param=<%# DataBinder.Eval(Container.DataItem, "Param")%>'
		onClick="newWnd = window.open(this.href, 'newWnd ', 'width=300,height=550,left=610,
		top=100,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=yes,
		toolbar=no').focus(); return false;">...</a>
	</ItemTemplate>
</asp:TemplateColumn>

//только с кавычками повнимательнее
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733996
dmitry_cmc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы так пробовали?
У меня не выходит - при попытке перейти из HTML в Design пишет - "Could not open in Design View. Quote values differently inside a '<% ... "value"... %>' block
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32733998
dmitry_cmc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitry_cmcВы так пробовали?
У меня не выходит - при попытке перейти из HTML в Design пишет - "Could not open in Design View. Quote values differently inside a '<% ... "value"... %>' block

Это я грил в ответ на сообщение Ustazz
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734004
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если так пишет, значит путаница с кавычками произошла
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734020
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно ругается :( Я не пользуюсь дизайнером, поэтому в нем не проверял. На вариант profil ничего не говорит.
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734027
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда пишите выражение <%# DataBinder.Eval(Container.DataItem, "Param")%>, то оно обязательно должно обрмляться одинарными кавычками
то есть вместо
<a href='webform.aspx/?param=<%# DataBinder.Eval(Container.DataItem, "Param")%>'
попробуйте
<a href='<%# "webform.aspx/?param=" & DataBinder.Eval(Container.DataItem, "Param")%>'
-с серверными скобками <%# %> повнимательнее нужно
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734042
dmitry_cmc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
profilесли так пишет, значит путаница с кавычками произошла

Да, только не понятно как ее разрешить.

Ваш вариант привлекательно выглядит. Единственно что - браузер говорит что на странице ошибки, а требуемая страничка открывается в том же окне а не в попап.
Вообще я так подумал логично было бы строку запроса как нить в переменную javacript положить а потому уже в onclink ее доставать.
Но я этого не могу сделать, т.к. не знаю javacript
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734086
dmitry_cmc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUкогда пишите выражение <%# DataBinder.Eval(Container.DataItem, "Param")%>, то оно обязательно должно обрмляться одинарными кавычками
то есть вместо
<a href='webform.aspx/?param=<%# DataBinder.Eval(Container.DataItem, "Param")%>'
попробуйте
<a href='<%# "webform.aspx/?param=" & DataBinder.Eval(Container.DataItem, "Param")%>'
-с серверными скобками <%# %> повнимательнее нужно

В если выражение внутри <%# %> само должно содержать одинарные скобки? :)
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734106
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitry_cmc monstrUкогда пишите выражение <%# DataBinder.Eval(Container.DataItem, "Param")%>, то оно обязательно должно обрмляться одинарными кавычками
то есть вместо
<a href='webform.aspx/?param=<%# DataBinder.Eval(Container.DataItem, "Param")%>'
попробуйте
<a href='<%# "webform.aspx/?param=" & DataBinder.Eval(Container.DataItem, "Param")%>'
-с серверными скобками <%# %> повнимательнее нужно

В если выражение внутри <%# %> само должно содержать одинарные скобки? :)

да, что то тут и меня смущает :) щас попробую найти как нужно
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734114
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что бы было проще разобраться, windows.open(..) лучше вынести в отдельную функцию (да и страница весит меньше будет)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<asp:TemplateColumn HeaderText="Удалить">
	<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
	<ItemStyle HorizontalAlign="Center"></ItemStyle>
	<ItemTemplate>
		<a href='webform.aspx/?param=<%# DataBinder.Eval(Container.DataItem, "Param")%>'
		onclick="javascript: OpenNewWnd(this.href); return false;">...</a>
	</ItemTemplate>
</asp:TemplateColumn>
а на странице разместить javascript:
Код: plaintext
1.
2.
3.
4.
<script language='JavaScript'>
function OpenNewWnd(sUrl){
var features = 'width=500,height=550,left=350,top=100,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=1,toolbar=0';
NewWnd = window.open(sUrl , 'NewWnd', features ).focus();}
</script>
ну примерно так... идея, я думаю, ясна
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734130
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот из моего проекта

<asp:HyperLink id=hlTowns runat="server" EnableViewState="False"
Text='<%# Container.DataItem("name_town") %>'
Target="_blank"
NavigateUrl='<%# "http://bk/info/service/weather/#" &
DataBinder.Eval(Container, "DataItem.weather") %>'>
</asp:HyperLink>

то есть как я понимаю NavigateUrl это то что интересует ?
причем советую оформлять через визуальный дизайнер databinding
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734141
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. картинку - надо примерно так
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734157
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
profilчто бы было проще разобраться, windows.open(..) лучше вынести в отдельную функцию (да и страница весит меньше будет)
Код: plaintext
1.
2.
3.
<asp:TemplateColumn HeaderText="Удалить">
......
	</ItemTemplate>
</asp:TemplateColumn>

но ведь так он сделает открытие окна пл щелчку на гиперсылке, а ему надо сделать открытие окна по щелчку на строке грида


profilа на странице разместить javascript:
Код: plaintext
1.
2.
3.
4.
<script language='JavaScript'>
function OpenNewWnd(sUrl){
var features = 'width=500,height=550,left=350,top=100,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=1,toolbar=0';
NewWnd = window.open(sUrl , 'NewWnd', features ).focus();}
</script>
ну примерно так... идея, я думаю, ясна

функция то что надо, ее и использовать
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734171
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вас по ошибочному путю повели.

в итоге сделайте следующее

Private Sub dgrdListForums_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgrdListForums.ItemDataBound
Dim itemType As ListItemType = e.Item.ItemType
If ((itemType = ListItemType.Pager) Or _
(itemType = ListItemType.Header) Or _
(itemType = ListItemType.Footer)) Then
Return
Else

Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
e.Item.Attributes("onclick") = "javascript:OpenNewWnd('mypage.aspx?id_param" & dv("param") & ";'")
End If
End Sub

это если вы в datasource использовали dataview - и на щелчок мыши на строке будет окрываться новое окнос параметрами строки
...
Рейтинг: 0 / 0
onclick в строке Датагрида
    #32734178
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUно ведь так он сделает открытие окна пл щелчку на гиперсылке, а ему надо сделать открытие окна по щелчку на строке грида
мне показалось постановка задачи была следующая:
dmitry_cmcЧтобы в каждой строки грида была ссылочка на другую страничку которая в качестве параметра принимает элемент из строки грида.
Страничка при этом естественно перезагружать не должна.
...ибо окошко должно быть определенного размера
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / onclick в строке Датагрида
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]