2012-01-31 52 views
0

我已經使用ASP.Net AJAX控件工具包創建了自定義擴展程序。以下是我的擴展器類的片段。在自定義ASP.Net中嵌入圖像AJAX擴展程序

using System.ComponentModel; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using AjaxControlToolkit; 

[assembly: WebResource("CustomExtenders.ListComplete.ListCompleteBehavior.js", "text/javascript")] 
[assembly: WebResource("CustomExtenders.ListComplete.style.css", "text/css")] 
[assembly: WebResource("CustomExtenders.ListComplete.close.gif", "image/gif")] 

namespace CustomExtenders.ListComplete 
{ 
    [Designer(typeof(ListCompleteDesigner))] 
    [ClientScriptResource("CustomExtenders.ListCompleteBehavior", "CustomExtenders.ListComplete.ListCompleteBehavior.js")] 
    [ClientCssResource("CustomExtenders.ListComplete.style.css", LoadOrder = 1)] 
    [TargetControlType(typeof(ListBox))] 
    public class ListCompleteExtender : ExtenderControlBase 
    { 

上面的JS和CSS文件與裝配完全加載,但它並沒有在應用程序目錄中的GIF圖像複製。 style.css中的css參考close.gif,但它在那裏找不到它。

我已將Build Action屬性設置爲Embedded Resource並且它沒有幫助。

有誰知道我該如何嵌入這個資源。

回答

0

好吧,我工作的周圍一點點固定它自己(或入侵)。

我已經在上面ListCompleteExtender類這樣的重寫了的OnInit事件,

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,並與ID 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函數是從here服用。

我們剛剛在這裏做的是,修改用於顯示close.gif點從組件中提取的圖像的URL的CSS。