C#.Net

بايند كردن RadPanelBar

نوشته‌شده به وسیله‌ی: C#.Net در: مه 10, 2009

تو اين پست در مورد ديناميك كردن RadPanelBar توضيح مي دم.البته كلا كار پيچيده ئي نيست ولي جالبه!

سناريوي كلي ميتونه اين جوريه باشه كه شما تو وب سايتتون يه منو داريد كه آيتم هاي مختلف اون با توجه به نوع user لاگين شده متفاوت ميشه و شما مي تونيد آيتم هاي منو رو تو يه جدول تو پايگاه داده تون بريزيد و منو رو به اين جدول بايند كنيد، بعد مثلا با توجه به رول يوزر جدول رو فيلتر كرده و منو رو با آيتم هاي خاصي بهش نشون بديد.البته بايندينگ ميتونه به هر نوع DataSource  معمول از قبيل Xml,DataSet و كلا هر نوع IEnumerable باشه.

اما نكته جالب RadPanelBar‌ دارا بودن خصوصيات جالب واسه اين كاره كه كار كردن باهاش رو راحت كرده:

الف)  DataSource براي ست كردن ديتا سورس مربوطه  از نوع object !

ب)MaxDataBindDepth اين خاصيت زماني مفيده كه شما منوهاي بازگشتي داريد مثلا دو يا سه level منو و ساب منو (Sub Menu) داريد و مي خوايد فقط تا دو مرحله رو نشون  كاربر بديد اين خاصيت اين كار رو بدرستي انجام ميده:

RadPanelBar1.MaxDataBindDepth = 2;

ج)DataNavigateUrlField اين خاصيت هم نام غيلد مربوط به NavigateUrl آيتم هاي منو رو مي گيره.يعني فرض كنيد ساختار جدول منو ها تون به اين شكله كه به ازاي هر آيتم(سطر جدول) يه فيلد هم واسه نگه داشتن url آيتم به كار مي ره تو اين خاصيت شما اسم اين ستون رو ست مي كنيد.

RadPanelBar1.DataNavigateUrlField =”نام ستون حاوي مقدار NavigateUrl”;

د) DataFieldID آي دي آيتم منو (شايد كليد اصلي جدول!).

RadPanelBar1.DataFieldID = “IDColumn”;

ه) DataFieldParentID آي دي والد آيتم جاري، اگه منو سلسله مراتبي (Parent,Child) داريد اين خاصيت واسه ست كردن والد(Parent) آيتم منو استفاده ميشه تا ساختار سلسله مراتبي منو ها به درستي ترسيم بشه.

RadPanelBar1.DataFieldParentID = “ParentIDColumn”;

و) DataTextField اين خاصيت هم كه كاربردي ترينشونه ديگه نمايش عنوان واسه آيتم هاي منو.

RadPanelBar1.DataTextField = «TitleColumn»;

ز) DataBind() اين متد هم كه نيازي به توضيح نداره!

RadPanelBar1.DataBind();

خسته نباشيد.

البته واضحه كه تمام اين كار ها رو ميشه با چند تا حلقه تو در تو نيز انجام داد ولي به نظر من روش فوق يه جورايي قشنگ تر و بي دردسرتره!

برچسب‌ها: , ,

آپلود فايل با ASP.net

نوشته‌شده به وسیله‌ی: C#.Net در: ژانویه 21, 2009

براي آپلود فايل از يه كنترل به نام “UploadFile” استفاده مي كنم. كه  يه TextBox و يه دكمه براي Browse داره.

خصوصيت PostedFile اين كنترل يك شي از نوع  HttpostedFile برمي گردونه به صورت زير:

HttpPostedFile myfile = FileUpload1.PostedFile

اين كنترل يه خصوصيت به نام InputStream داره كه متد Read آن يه ارايه از نوع Byte رو پر مي كنه.

بدين صورت:

int len = UploadFile1.ContentLength;1

byte[] mydata = new byte[len];1

UploadFile1.InputStream.Read(mydata, 0, len);1

كه خاصيت ContentLength حجم فايل UpLoad شده رو به بايت بر مي گردونه.

حالا ذخيره كردنش تو ديتا بيس راحته،يه فيلد از نوعimag تعريف مي كنيم و خلاص.

فقط يه محدوديت 4MB براي آپلود داره. تغيير ماكزيمم حجم آپلود، توسط يه تغيير تو web.config انجام ميشه،بدين صورت:

<system.web>
<httpRuntime maxRequestLength=»150000″/0 >
</system.web>

كه maxRequestLength بر اساس KB ميباشد!

برچسب‌ها: ,

بدست آوردن مقدار يك فيلد Identity  

نوشته‌شده به وسیله‌ی: C#.Net در: ژانویه 20, 2009

با اجراي يكي از دستورات زير مي توان مقدار فيلد Identity را كه  در ديتا بيس توليد مي شود پيدا كرد.يعني پس از اجراي Insert Command مقدار اين فيلد قابل دسترسي مي باشد!

SELECT IDENT_CURRENT(«TableName») AS IDENT_CURRENT

يا

SELECT SCOPE_IDENTITY() AS IDENT_CURRENT

يا

SELECT @@IDENTITY

كه فكر كنم بهترينش دومي باشه.

 

 

انگيزه ئي براي نوشتن!

نوشته‌شده به وسیله‌ی: C#.Net در: ژانویه 11, 2009

سلام 

خيلي چيزا دارم كه بنويسم

اما نه وقت دارم نه حوصله.

كاش تو خونه هم اينترنت داشتم كه بتونم بنويسم.

به نام خدا

نوشته‌شده به وسیله‌ی: C#.Net در: اکتبر 28, 2008

سلام اين اولين نوشته اين وبلاگه كه امروز هشت آبان هشتاد و هفت شروع بكار كرد!(وجود اين همه هشت و هفت رو به فال نيك مي گيرم) تو اين وبلاگ در مورد هر چيزي كه دوست داشته باشم مي نويسم،و بنا به توصيه دوستام هر چيز جديدي كه ياد گرفتم رو مي ذارم اينجا تا هم ياد خودم بمونه و هم اگه بدرد كسي خورد ذكاتش رو داده باشم!

من يه چند ماهي هست كه دارم سي شارپ كار مي كنم و طبعا اكثر چيزايي كه اينجا مي نويسم مي تونه به سي شارپ مربوط بشه.و از اونجايي كه كاملا مبتدي هستم مطالب مي تونه كاملا توضيح واضحات باشه.سعي مي كنم خيلي خودمو در گير و بند رسمي نوشتن نكنم هر چند به شرايط جوي بستگي داره!!!

فعلان اينا رو داشته باشين تا بعد…

دنبال‌کردن

هر نوشته‌ی تازه‌ای را در نامه‌دان خود دریافت نمایید.