PDA

View Full Version : ایجاد dropdownlist و textbox به صورت آنلاین



nassim0
شنبه 03 دی 1390, 14:24 عصر
با سلام
دوستان من می خواستم کاربرم بتونه dropdownlist و textbox و checkbox به صورت آنلاین و به تعداد نامحدود درست کنه
توی تایپیک قبلیم هم طریقه ایجاد صفحه به صورت آنلان توسط کاربر رو سوال کرده بودم ه هنوز راهنمایی از دوستان دریافت نکردم
با تشکر

hamid_shrk
شنبه 03 دی 1390, 14:55 عصر
با یک literal textbox میتونی این کار رو بکنی به این ترتیب که تو خاصیت text اون بصورت HTML باید دستور ساختش رو بنویسی.

nassim0
شنبه 03 دی 1390, 15:33 عصر
با یک literal textbox میتونی این کار رو بکنی به این ترتیب که تو خاصیت text اون بصورت HTML باید دستور ساختش رو بنویسی.

سلام من کدش رو بلد نیسم یعنی چطوری بصورت html باید ساخته بشه ؟

hamid_shrk
شنبه 03 دی 1390, 16:13 عصر
تعریغ تگ رو توی مثلا page load تون بزارید توی literal.text مثلا :


literal.text="<تعریف دراپ دان در html>"

NIK
یک شنبه 04 دی 1390, 02:00 صبح
سلام

یکی از مشکلات Asp.net همینه.
شما اگر بعد از لود شدن صفحه، کنترلی رو بسازید، در CodeBehind به اون کنترلها دسترسی ندارید. برای ساخت کنترل های داینامیکی هم باید در رویداد OnInit کنترلها رو تعریف کنید تا بعد بتونید اونها رو بخونید.
اگه میخواید کنترل توسط کاربر ساخته بشه، برای گرفتن کنترلها هنگام ذخیره فرم با مشکل مواجه میشید. باید با اسکریپت سمت کلاینت کنترلها رو بخونید و ارسال کنید.

موفق باشید.

m110_110
یک شنبه 04 دی 1390, 08:26 صبح
با سلام
ميشه كمي بيشتر توضيح بديد دقيقا ميخواهيد چكار كنيد؟
فكر مي كنم ميخواهيد فرم ساز درست كنيد يا چيزي شبيه به اين
ولي در هر حال يك نمونه كد كوچيك براي درست كردن يك كنترل در حين لود صفحه مي تونه اين باشه

TextBox txt = new TextBox();
txt.Text = "سلام";
txt.ID = "txt1";
MainPanel.Controls.Add(txt);

nassim0
یک شنبه 04 دی 1390, 10:43 صبح
با سلام
ميشه كمي بيشتر توضيح بديد دقيقا ميخواهيد چكار كنيد؟
فكر مي كنم ميخواهيد فرم ساز درست كنيد يا چيزي شبيه به اين
ولي در هر حال يك نمونه كد كوچيك براي درست كردن يك كنترل در حين لود صفحه مي تونه اين باشه

TextBox txt = new TextBox();
txt.Text = "سلام";
txt.ID = "txt1";
MainPanel.Controls.Add(txt);






با سلام و تشکر از دوستان
من می خوام یک سایت ساز درست کنم . کاربر بتونه textbox یا dropdownlist و حتی صفحه جدید درست کنه . اگه درست متوجه شده باشم کد بالا با هر بار لود صفحه یکtextbox درست می کنه . توی کدوم موقعیت از صفحه میزاره ؟ برای بقیه کنترلر ها هم همین کد جواب میده ؟

چطوری میشه با oninit کنترل تعریف کرد . ممنون میشم بیشتر راهنمایی کنید

m110_110
یک شنبه 04 دی 1390, 11:57 صبح
با سلام
شما مي تونيد بسته به كارتون در هرجا تعريف كنيد
من توي Page_load اين كار رو انجام ميدم
در ضمن اينكه چه كنترلي با چه خصوصياتي استفاده كنم رو توي يك table ذخيره كردم و استفاده مي كنم
در هر حال يك كمي بايد روي اون كار كنيد تا بتونيد به نتيجه دلخواه خود برسيد
و اگر هم بخواهيد توي oninitانجام بديد هم كد ذيل :
protected override void OnInit(EventArgs e)
{
//code
base.OnInit(e);
}

NIK
پنج شنبه 22 دی 1390, 01:18 صبح
اگه در رویداد Page_Load کنترل به فرم اضافه کنید، هنگام Post back نمیتونید کنترل رو Find کنید. حتما باید در رویداد OnInit تعریف کنید.

درباره ساخت فرم های داینامیکی هم شما بفرمائید که چطور میخواید کار کنید تا من راهنماییتون کنم.
تمام کنترلهای دات نت رو میتونید اینطور بسازید و حتی دیتا به اونها Bind کنید.

موفق باشید.

nassim0
پنج شنبه 22 دی 1390, 09:27 صبح
با تشكر
من ميخوام يك سايت داشته باشم كه كليه كارهاش رو خود كاربر انجام بده . بتونه صفحه به پروژه اضافه كنه (كه از دوست عزيز programer-ir تشكر ميكنم توي تاپیک: ایجاد صفحه جدید به پروژه باوسیله buttom و راه ديگرش رو هم دوست عزيز hamid_shrk بوسيله url routing گفتند) dropdownlist , texbox , ... و حتي بتونم شكل نمايش گريدويو رو بر اساس چيدمان خودش تغيير بده . من مبتدي ام كليه امور برنامه نويسي رو از دوستام تو همين سايت ياد گرفتم . از OnInit و literal حقيقتا اصلا نميدونم . ممنون ميشم هم راهنمايم كنيد هم بهم ياد بديد .

NIK
پنج شنبه 22 دی 1390, 14:33 عصر
من تاپیک قبلی رو خوندم. ساخت صفحه aspx کار منطقی نیست.
ابتدا باید چیدمان صفحه رو بتونید با یک قالب خاص در دیتابیس ذخیره کنید.
سپس شما باید یک صفحه یا صفحاتی با پسوند aspx بسازید که از master page های مورد نظرتون استفاده کنند. اما خالی باشند. بسته به پارامتری که برای صفحه ارسال میشه یا از روشهای دیگه میتونید از دیتابیس کلیه کنترلهایی که باید نمایش داده شوند را انتخاب کنید و قبل از لود شدن صفحه (رویداد onInit) اونها رو ایجاد کنید.
فرض کنید صفحه temp.aspx رو ساختید. کاربری روی لینک register.aspx کلیک میکند. شما باید این آدرس رو روی این آدرس temp.aspx?register روت کنید. (نمیدونم روت کردن رو بلدید یا نه اما با این کار آدرس روی بروزر کاربر همون register.aspx میمونه.) این به این مفهومه که باید کنترلهای صفحه ثبت نام لود شود. پس از دیتابیس کلیه کنترلهای صفحه ثبت نام (که البته قبلا تعیین شده است) رو انتخاب میکنید و در قبل از لود شدن صفحه اونها رو میسازید.

literal یک کنترله که میتونید توی پروپرتی text اون تگهای html بنویسید و هنگامی که در صفحه اضافه می کنید، کد html به صفحه aspx شما اضافه میشه.
سعی میکنم امروز یه نمونه کد براتون بزارم. این بحث خیلی وسیعه. من سعی میکنم با چند تا مثال راهنماییتون کنم.

درضمن رویداد onInit مثل رویداد pageLoad قبل از بارگزاری صفحه اجرا میشه. اما onInit زودتر از pageLoad اجرا میشه و اگه بخواهید از طریق کد به صفحه کنترل اضافه کنید، حتما باید در رویداد onInit اضافه بشه. چون اگه در pageLoad اضافه کنید، هنگام سابمیت شدن فرم نمیتونید اون کنترل رو بگیرید و پیداش کنید.

موفق باشید

nassim0
یک شنبه 25 دی 1390, 09:19 صبح
با سلام و تشكر
با onint و litral كار نكردم . نميدونم چطوري بايد توشون كد ايجاد كرد . حقيقتا روت آدرس رو هم بد نيستم . خيلي بهم لطف مي كنيد بابت وقتي كه برام ميگذاريد . ممنونم

alonemm
یک شنبه 25 دی 1390, 14:47 عصر
باسلام:
برای پیاده سازی صفحاتی که توسط کاربران و بدون دخالت طراحان سایت پیاده سازی میشند شما از مکانیزمی به نام CMS یا سیتم کنترل محتوی استفاده میکنید.

1- نام صفحات به صورت یک رکورد از یک جدول از پایگاه داده میباشد و تمامی اطلاعات صفحه (کدها HTML) اون در جدول پایگاه داده ذخیره میشود.
2- برای ساخت صفحات میتونید از ویرایشگر های متن تحت وب مثل http://www.tinymce.com/ استفاده کنید و صفحه مورد نظر رو ساخته و کد های HTML رو در جدول مربوطه در پایگاه داده ذخیره کنید.
3- برای نمایش صفحه از شی http://www.w3schools.com/aspnet/control_literal.asp استفاده کنید و تگ های HTML رو خونده و نمایش بدید.


موفق باشید.