C# 在自定义ASP.Net AJAX Extender中嵌入图像

C# 在自定义ASP.Net AJAX Extender中嵌入图像,c#,asp.net,ajaxcontroltoolkit,C#,Asp.net,Ajaxcontroltoolkit,我已经使用ASP.NETAjax控件工具包创建了一个自定义扩展程序。下面是我的扩展程序类的代码段 using System.ComponentModel; using System.Web.UI; using System.Web.UI.WebControls; using AjaxControlToolkit; [assembly: WebResource("CustomExtenders.ListComplete.ListCompleteBehavior.js", "text/javasc

我已经使用ASP.NETAjax控件工具包创建了一个自定义扩展程序。下面是我的扩展程序类的代码段

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
,但在那里找不到它

我已将
构建操作
属性设置为
嵌入式资源
,但它没有帮助


有人知道如何嵌入此资源吗

嗯,我自己做了一点修改(或破解)来修复它

我已经在上面的
ListCompleteXtender
类中重写了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为LBLCloseImageUrlListCompleteXtender的Label控件中。我已将标签放置在页眉中,隐藏它并取消了ViewState以使其尽可能轻

现在修改extender 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函数取自

我们刚才所做的是,修改用于显示
close.gif
的CSS,以指向从汇编中提取的图像的URL