چند روز پیش در حال خواندن مطلبی در سایت آقای نصیری بودم که اشاره شده بود از 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 کم می دانم و احتمالا بهتر از این هم میشه نوشت.
برای اطلاعات بیشتر آدرس زیر را ببینید :
کنترل 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 را به اضافه کردم :
متد RenderContents (رندر محتویات) یک کنترل با تگ div داخل دکمه می سازد و TextCssClass در حقیقت کلاس این div است. حالا با استفاده از TextCssClass می توان برای دکمه ها icon قرار داد :
<cc1:IconButton ID="IconButton1" runat="server" Text="جستجو" CssClass="button" TextCssClass="searchButton" onclick="IconButton1_Click"/>
و در فایل css :
.searchButton { background-image: url('search.png'); background-repeat: no-repeat; background-position: right center; padding: 3px 17px 3px 3px; } .button { border-radius: 3px; box-shadow: 1px 1px 2px rgba(0,0,0,0.1); background-image: url('button.png'); font-family: tahoma; font-size: 11px; border: 1px solid #AAB9CE; color: #2B3F57; background-color: #E5F0FF; margin: 1px; }و نتیجه :