У меня есть ListView на странице в пределах MasterPage и несколько очень некрасивых некрасивых автоматически сгенерированных идентификаторов.
Например ... "ctl00_workbenchPlaceHolder_ListView1_ctrl1_LibItem2One"
Использование swfobject.embedSWF (...) требует от меня передачи идентификатора div на моей странице, который может быть заменен разметкой объекта / встраивания в зависимости от контекста браузера.
Моя цель - показать пользователям коллекцию видео, которые они загрузили на свой веб-сайт, чтобы они могли просматривать их и при необходимости изменять некоторые связанные данные.
Отсюда ListView, который заполняется через SQLDataSource, который в настоящее время предоставляет несколько URL-адресов, указывающих на файлы .flv.
Но это не сработает, если я добавлю
'в свой пользовательский элемент управления, потому что тогда у меня может быть более одного id = "replaceme" и плохому swfobject не понравится это.
Так что мое злое решение состоит в том, чтобы поместить в мой usercontrol и построить скрипт, имя функции и идентификатор тега div в виде строки.
ApplyVideoConfiguration вызывается, если объект библиотеки, извлеченный из базы данных, представляет собой видео и переключается на соответствующий вид элемента управления MultiView.
protected void ApplyVideoConfiguration()
{
MultiViewLibItem.ActiveViewIndex = 3;
string functionName = "MakeFlashFor_" + this.ClientID;
string divId = "fp" + this.ClientID;
VideoScriptLiteral.Text =
"<script type=\"text/javascript\">" +
"Sys.Application.add_load(" + functionName + ");" +
"function " + functionName + "(){" +
"swfobject.embedSWF('PanamaVideoThumbnail.swf', '" + divId + "', '140', '127', '10');" +
"};" +
"</script>" +
"<div id=\"" + divId + "\" ></div>" ;
}
Мне было интересно, насколько это плохое решение, я на самом деле совершенно неопытен, когда дело доходит до лучших практик, но мои инстинкты говорят мне, что это плохо, хотя это удается с целью встраивания некоторых экземпляров Flash Player. .
Может кто-нибудь помочь мне сделать его красивым?