PDA

View Full Version : در Custom server control چگونه یک عکس رو که رجیستر شده در css مقدار آدرس دهی میکنند



amirjalili
چهارشنبه 07 مهر 1389, 14:48 عصر
با سلام.
فرض کنید در پروژه Custom server control یک عکس دارید. میخواهید این عکس رو در css آدرس دهی کنید تا مثلا در background-image مربوط به کنترل نشان داده بشه. چطور این کار رو انجام می دهند.
با تشکر

hamedsabzian
چهارشنبه 07 مهر 1389, 18:54 عصر
اگه منظورتون آدرس دهیه، که:

Page.ResolveUrl("~/Images/Image.png")

Himalaya
چهارشنبه 07 مهر 1389, 20:43 عصر
نه. منظورش اینه


background:url(<%=WebResource("SlideShow.images.Cloud.png")%>)

amirjalili
پنج شنبه 08 مهر 1389, 08:52 صبح
با تشکر.
آقا من دقیقا همین چیزی رو که شما گفتید رو با آدرس خودم جایگزین کردم و گذاشتمش تو css.
عکس ها رو هم قبلا رجیستر کردم. پس چرا نشون نمیده؟ من قبلا هم از این نوع آدرس دهی استفاده کرده بودم.
من عکس رو به این صورت رجیستر کردم :


[assembly: WebResource("MyControl.cut.png", "image/png")]

عکس رو EmbededResource کردم.
تو css هم این کار رو کردم. قبلا css رجیستر شده و کار میکنه چون وقتی رنگ میدم به background کار میکنه.



.bg2
{
background:url(<%=WebResource("MyControl.cut.png")%>)
background-repeat:no-repeat;
border: 0px;
height: 21px;
width: 21px;

}


اینم کد خودم :



protected override void RenderContents(HtmlTextWriter output)
{
output.Write("<p class='bg2' onclick='event2()'>event2 </p>");

}

به جز embeded و رجیستر کردن عکس هم که کار دیگه ای نباید بکنم. پس چرا نشون نمیده؟

amirjalili
پنج شنبه 08 مهر 1389, 10:58 صبح
این پروژه چند خطی منه. من فقط میخوام عکسی رو که رجیستر کردم در یک صفحه html که در سورس مشخصه نشون بده.
همه کارها رو کردم اما نشون نمیده. اگه ممکنه یه وقت کوچولویی رو سورس بذارید و مشکل من رو بفرمایید.


<body>
<img src="<%= WebResource('ServerControl2.bold.png') %>" />
</body>

Himalaya
پنج شنبه 08 مهر 1389, 14:33 عصر
سلام.
شما تو فایلی که ضمیمه کردید ،تو کدای ServerControl1.cs چیزی رو رندر نکردید که قرار باشه نمایش داده بشه یا نشه
فایل html رو پاک کنید و کدای زیر رو تو فایل ServerControl1.cs قرار بدید


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ServerControl2
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
public class ServerControl1 : Control
{
protected override void CreateChildControls()
{
LiteralControl allTag = new LiteralControl();
allTag.Text = "<img src=\"" + Page.ClientScript.GetWebResourceUrl(this.GetType() , "ServerControl2.bold.png") + "\" width=\"100px\" height=\"100px\" />";
this.Controls.Add(allTag);
base.CreateChildControls();
}
}
}

با GetWebResourceUrl به فایلهای ریسورس از طریق کدای c# میتونید دسترسی داشته باشید و تو کدای css و جاوا اسکریپت هم با همون چیزی که تو پست 3 گفتم