У меня много данных для отображения в GridView.Поскольку в каждой строке содержится так много информации, я хотел бы иметь возможность отображать дополнительную информацию, когда пользователь нажимает на строку, поэтому я подумал, что PopupExtender из набора инструментов AJAX будет идеальным.
В идеале, я хочувсплывающее окно, отображаемое при выборе любого элемента управления в строке.Мне удалось успешно присоединить PopupExtender к одному элементу управления в строке, но я не могу заставить всплывающее окно присоединиться к самой строке.
Я бы подумал, что установка PopupExtender TargetControlId
для ClientID строки в событии RowDataBound будет работать, но когда я делаю это, я получаю ошибку времени выполнения:
TargetControlID of 'popupExtId' is not valid.
A control with ID 'gvList_ctl02' could not be found.
Я заметил, что GridViewRow отображается, элемент tr не включает в себя идентификатор,поэтому я также попытался расширить элемент управления GridView, чтобы переопределить метод CreateRow
для визуализации идентификатора - с помощью этого метода я смог отобразить идентификатор строки (например, gvList_ctl02), но та же ошибка во время выполнения была выдана, когда я добавил PopupExtender обратно вкод.
Я также попытался связать команду showPopup () javascript с событием строки onclick
, чтобы всплывающее окно отображалось вручную;хотя событие click зарегистрировано OK и определенно инициировано, всплывающее окно все еще не отображается.
Кто-нибудь знает, как / можно ли связать PopupExtender с GridViewRow?
Мой код привязки строки следующий:
protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Bind the popup extender's target ID to the row ID
// This will cause a runtime error
PopupControlExtender pop = e.Row.FindControl("popupExtId") as PopupControlExtender;
pop.TargetControlID = e.Row.ClientID;
// Also bind the client side click handler to try to get the popup to show
// The alert is triggered and no javascript error is generated, but the popup does not display
e.Row.Attributes.Add("onclick", "alert('Row Clicked'); $find('" + pop.BehaviorID + "').showPopup();");
}
}
Большое спасибо.