在asp.net自定义控件中嵌入图像

时间:2011-12-07 11:33:54

标签: asp.net gridview dll custom-controls

我正在创建一个自定义Gridview控件,根据要求我必须在Top Pager中放置两个图像按钮。我可以在顶部寻呼机中显示图像按钮但只有一个图像图像按钮显示图像另一个图像按钮不显示。

这是代码:

 protected override void InitializePager(GridViewRow row,int columnSpan,PagedDataSource pagedDataSource)
        {
//adding  refresh button in TopPager
            ImageButton Refresh = new ImageButton();
            Refresh.ToolTip = "Refresh GridView";
            Refresh.ImageAlign = ImageAlign.Right;
            Refresh.AlternateText = "Refresh GridView";
            ClientScriptManager cs1 = this.Page.ClientScript;
            Refresh.ImageUrl = cs1.GetWebResourceUrl(typeof(myCustomGrid.CustomGrid), "myCustomGrid.Refresh.gif");

// adding button  in TopPager to add new record..
            ImageButton ExportToPDF = new ImageButton();
            ExportToPDF.ToolTip = "Export To PDF";
            ExportToPDF.AlternateText = "PDF Export";
            ClientScriptManager cs2 = this.Page.ClientScript;
            ExportToPDF.ImageUrl = cs2.GetWebResourceUrl(typeof(myCustomGrid.CustomGrid), "myCustomGrid.PDF.gif");
}

我已将两个图像属性构建操作设置为嵌入资源

在assembly.info

[assembly: WebResource("myCustomGrid.Refresh.gif", "image/gif")]
[assembly: WebResource("myCustomGird.PDF.gif", "image/gif")]

我错了!非常感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

此图片是否放置在项目的根目录中?因为,如果不是,你必须添加相对路径。而且我没有看到来自asssembly的路径。 你必须这样做:

[assembly: WebResource("{Your assembly full name}.{Path to image inside assembly and with replacement '/' to '.'}.{Image name}", "image/gif")]

例如:

[assembly: WebResource("MyBestProject.Controls.resources.images.myCustomGird.PDF.gif", "image/gif")]

答案 1 :(得分:0)

可能是一个错字。

你的意思是: -

[assembly: WebResource("myCustomGrid.PDF.gif", "image/gif")]

而不是......

[assembly: WebResource("myCustomGird.PDF.gif", "image/gif")]

答案 2 :(得分:0)

更新: 当图像按钮分别呈现由Refresh.gif和PDF.gif图像按钮生成的HTML时,PDF.gif不会加载而是我得到指定的备用文本,在此代码行中ExportToPDF.AlternateText = "PDF Export";

 <input align="right" type="image" style="height:20px;width:20px;" alt="Refresh GridView" src="/WebResource.axd?d=CIOcfTt92OMP_aqepr-cGa2E4E8-uaiywsae5-4NcYocrJ-NE-cIL4Qb2JfX3tY0cIa8EwDzWnyeBqNiST34SNpBNuGjVC113XqMTprBN-XU9J7ilPsI6bsaXwHa-Qt30&amp;t=634589418951556073" title="Refresh GridView" name="ctl00$MainContent$customGrid0$ctl01$ctl02">



 <input type="image" style="height:20px;width:20px;margin-left:480px;" alt="PDF Export" src="/WebResource.axd?d=su3rsVMzKa7BNi4A-JZVUHPhHh3sS-oWW9bmAeK4I0h1A11NHqBD2setFyA3yundDC34YO0gbBoz5G0PHS0uxeQYI66QON_syQhIdlIKs4JzJW6H_oLErMjOZE6Q_slB0&amp;t=634589418951556073" title="Export To PDF" name="ctl00$MainContent$customGrid0$ctl01$ctl01">

答案 3 :(得分:0)

“仅”2年后,我遇到了类似的问题。我只是通过查看这篇文章和我的问题之间的相似之处来解决我的问题。也许其他人会发现这个解决方案将来会有用。

问题似乎与名称的ALLCAPS部分有关。出于某种原因,UpperLower名称工作得很好,所有较低的名称都可以。但我猜测ALLCAPS段在内部转换为其他内容并且不起作用。在我的情况下,将我的图标从“ARROWLEFT.GIF”重命名为“ArrowLeft.gif”(文件名,注册和对资源的任何引用)修复了该问题。

附加说明:我在同一个项目中有另一个图像,名为“icon_Calendar.GIF”,在我将其重命名为“icon_Calendar.gif”之前也没有工作。