Xpoint
   [напомнить пароль]

относительные пути в компонентах

Метки: [без меток]
2010-01-23 21:51:32 [обр] Евгений[досье]
Например, я создаю какой-нибудь юзер контрол с gridView, внутри которого HyperLinkField.
DataNavigateUrlFields="id"
не могу понять что надо сделать с DataNavigateUrlFormatString, чтобы передать параметр тому же "скрипту" (т.е. сослаться на тот скрипт, в который включен контрол). По умолчанию ссылка приняла путь компонента, что есть полный абсурд!
"~/" отправляет к корню проекта. Учитывая что смысл компонентов в повторном использовании, то такой метод так же ведет к потери смысла делать компонент.
спустя 2 часа 50 минут [обр] Василий Свиридов(47/175)[досье]
Делайте через LinkButton, он будет делать постбэк в ту-же самую страницу.
спустя 13 часов [обр] Евгений[досье]
вчера пробовал, нумерация кнопок идет по порядку сверху-вниз. А у каждой записи, в базе, есть id. Может быть кнопка в постбэке умеет какие-то заданные параметры передавать?
спустя 2 дня 7 часов [обр] Василий Свиридов(47/175)[досье]

можно поставить <asp:HiddenField/> рядом с кнопкой и в нём держать айдишник из базы. После нажатия на кнопку нужно будет найти этот контрол в родительском элементе используя следующую конструкцию:

protected void btnKnopka_Clicked(object sender, EventArgs e)
{
    HiddenField hf = ((Control)sender).Parent.FindControl("<hidden field ID>") as HiddenField;
    int bd_id = int.Parse(hf.Value);
}

как-то так. Ну, и проверяйте что hf != null после поиска... Рекомендую так-же этот айдишник шифровать перед добавлением в скрытое поле. Т.к. оно идёт открытым текстом в HTML.

спустя 1 день 21 час [обр] Евгений[досье]
неужели в майкрософте не предусмотрели такую ситуацию?!
это так естественно. Это же просто кунгфу какое-то ))
по сути это попытка обойти нечто очень негибкое.
спустя 2 часа 1 минуту [обр] Евгений[досье]
странная ситуация, постбэк сделан по месту расположения компонента
спустя 3 часа 36 минут [обр] Евгений[досье]
все, вопрос решился просто!
я думал что произвольный код не может выполняться в блоке <%# %>, только в <%= %>. Оказалось - может.
спустя 1 день [обр] Василий Свиридов(47/175)[досье]
Евгений[досье]
Блоки <%# %> предназначены для DataBound контролов, там вроде была разница. Например if точно в них неработает.
спустя 23 часа [обр] Евгений[досье]
этот блок в datagrid работает в elementstemplate не так же, как, к примеру, в datalist
Powered by POEM™ Engine Copyright © 2002-2005