Ну, я исправил это сам с небольшим обходом (или взломать).
Я переопределил событие OnInit в вышеприведенном классе ListCompleteExtender
следующим образом:
protected override void OnInit(System.EventArgs e)
{
base.OnInit(e);
string closeImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "CustomExtenders.ListComplete.close.gif");
//LiteralControl include = new LiteralControl(closeImageUrl);
Label lblCloseImageUrl = new Label();
lblCloseImageUrl.ID = "lblCloseImageUrlListCompleteExtender";
lblCloseImageUrl.ViewStateMode = ViewStateMode.Disabled;
lblCloseImageUrl.EnableViewState = false;
lblCloseImageUrl.Text = closeImageUrl;
lblCloseImageUrl.Attributes["style"] = "display: none;";
this.Page.Header.Controls.Add(lblCloseImageUrl);
}
Как вы могли видеть в предыдущем коде, я смог загрузить изображение close.gif
в сборке, но не смог найти ссылку на него.
Я извлек URL указанного выше изображения и записал его в элемент управления Label с идентификатором lblCloseImageUrlListCompleteExtender
. Я поместил ярлык в заголовок страницы, скрыл его и отключил ViewState, чтобы сделать его максимально легким.
Теперь измените javascript расширителя и добавьте следующие строки после javascript элемента управления отображением:
var imgCloseUrl = $("#lblCloseImageUrlListCompleteExtender").text()
var closebuttonStyle = getCSSRule('ul.holder li.bit-box a.closebutton');
closebuttonStyle.style.background = 'url("' + imgCloseUrl + '") repeat scroll 0 0 transparent';
Используемая выше функция getCSSRule взята из здесь .
Мы только что сделали здесь, изменив CSS, используемый для отображения close.gif
, чтобы указать URL-адрес изображения, извлеченного из сборки.