تبليغاتX
RahmatRezaei.ToString()

چند روز پیش در حال خواندن مطلبی در سایت آقای نصیری بودم که اشاره شده بود از out استفاده نکنید. می خواستم متدی را که در آن از out استفاده کرده بودم، اصلاح کنم اما در پروژه بیشتر از 1000 بار از این متد استفاده شده بود و دستی نمی شد اینکار را کرد. مثلا :

public bool Insert(MyClass myClass, out int id)
{
   ... }
اصلاح شد به :
	public int Insert(MyClass myClass)
	{
	    ...
	}
و در نتیجه تمام عباراتی مثل :
	x.Insert(y, out z);
باید تبدیل می شدند به :
	z = x.Insert(y);

بعد از کمی جستجو متوجه شدم می توان از Regular Expressions در Find and Replace استفاده کرد. کافیست در پنجره Find and Replace در قسمت Find Option گزینه Use Regular Expressions را انتخاب کنیم. مثلا برای مورد بالا کافیست در قسمت Find what این عبارت را بنویسیم :

{:b*}{^*.*}.Insert\({^*.*}, out {^*.*}\);

و در قسمت Replace with :

\1\4 = \2.Insert(\3);

که اعداد 1 تا 4 به ترتیب متغیرهای رشته مورد جستجو هستند. مثلا 1 همان {:b*} است و 4 هم {^*.*} که بعد از out آمده است. البته من از Regular Expressions کم می دانم و احتمالا بهتر از این هم میشه نوشت.

برای اطلاعات بیشتر آدرس زیر را ببینید :

Regular Expressions for Find and Replace

+ نوشته شده در یکشنبه 16 بهمن1390ساعت 9:9 توسط رحمت اله رضایی |

کنترل Button در فضای نام System.Web.UI.WebControls یک دکمه ساده است که فقط شامل یک متن است و نمی توان کنترل دیگری به آن اضافه کرد. اگر بخواهیم icon داشته باشد باید از background-image آن استفاده کنیم.

اما اگر بخواهیم هم background-image داشته باشد و هم icon باید چکار کنیم؟

کنترلهای asp.net محدود به System.Web.UI.WebControls نیستند. System.Web.UI.HtmlControls هم هست. در فضای نام System.Web.UI.HtmlControls کنترل HtmlButton مناسب این کار است چون می توانیم به آن کنترلهای دیگری اضافه کنیم. مثلا می توان یک Label به HtmlButton اضافه کرد و icon را برای Label تنظیم کنیم یا حتی یک Image به HtmlButton اضافه کنیم. HtmlButton با تگ button رندر می شود.

اما HtmlButton تمام خواص asp:Button را ندارد.

بنابراین من کنترل Button را کمی دستکاری نمودم تا با تگ button رندر شود که بتواند محتوا داشته باشد. همچنین خاصیت TextCssClass را به اضافه کردم :

public class IconButton : Button
{
    protected override string TagName
    {
        get { return "button"; }
    }

    protected override HtmlTextWriterTag TagKey
    {
        get { return HtmlTextWriterTag.Button; }
    }

    public string TextCssClass
    {
        get;
        set;
    }

    protected override void RenderContents(HtmlTextWriter writer)
    {
        writer.WriteBeginTag("div");
        writer.WriteAttribute("class", TextCssClass);
        writer.Write(HtmlTextWriter.TagRightChar);
        writer.Write(Text);
        writer.WriteEndTag("div");
    }
}

متد RenderContents (رندر محتویات) یک کنترل با تگ div داخل دکمه می سازد و TextCssClass در حقیقت کلاس این div است. حالا با استفاده از TextCssClass می توان برای دکمه ها icon قرار داد :

<cc1:IconButton ID="IconButton1" runat="server" Text="جستجو" CssClass="button" 
        TextCssClass="searchButton" onclick="IconButton1_Click"/>
و در فایل css :
.searchButton
{
	background-imageurl('search.png');
	background-repeatno-repeat;
	background-positionright center;
	padding3px 17px 3px 3px;
}
.button
{
	border-radius3px;
	box-shadow1px 1px 2px rgba(0,0,0,0.1);
	background-imageurl('button.png');
	font-familytahoma;
	font-size11px;
	border1px solid #AAB9CE;
	color#2B3F57;
	background-color#E5F0FF;
	margin1px;
}
و نتیجه :
 

+ نوشته شده در یکشنبه 18 دی1390ساعت 19:50 توسط رحمت اله رضایی |
آخرین مطالب وبلاگ
استفاه از Regular Expressions در Find and Replace ویژوال استدیویکشنبه 16 بهمن1390ساعت 9:9
قرار دادن icon برای دکمه ها در asp.netیکشنبه 18 دی1390ساعت 19:50
دخالت دادن compilation debug در نمایش خطاهای مدیریت شده در asp.netشنبه 17 دی1390ساعت 1:22
بهینه سازی کد برای اجرای سریع (قسمت دوم)یکشنبه 13 آذر1390ساعت 14:36
بهینه سازی کد برای اجرای سریع (قسمت اول)جمعه 11 آذر1390ساعت 16:28
تفاوت no-store با no-cache در Cache-Controlپنجشنبه 10 آذر1390ساعت 14:10
تصویر امنیتی (captcha) هایی که هکرها آنها را دور می زنند. (قسمت دوم)شنبه 5 آذر1390ساعت 2:44
تصویر امنیتی (captcha) هایی که هکرها آنها را دور می زنند. (قسمت اول)چهارشنبه 2 آذر1390ساعت 19:52
حذف ViewState به طور کامل از صفحات aspxسه شنبه 1 آذر1390ساعت 17:5
اضافه کردن max-age به header فایلهای استاتیکدوشنبه 30 آبان1390ساعت 15:31