PDA

View Full Version : ایجاد صفحه جدید به پروژه باوسیله buttom



nassim0
یک شنبه 18 دی 1390, 12:19 عصر
با سلام خدمت دوستان
این تایپیک رو یک بار دیگه میزام چون کسی از دوستان نونست کمکم کنه
من می خواستم با کلیک روی یک buttom بتونم یک صفحه جدید به پروژه اضافه کنم

hamid_shrk
یک شنبه 18 دی 1390, 12:23 عصر
راه حلی که من واسه اینکار استفاده میکنم استفاده از یک ادیتور و یک جدول page هست که محتویات هر صفحه رو با ادیتور ایجاد میکنم و تو فیلدش ذخیره میکنم.
سپپس با url routing موقع فراخوانی یک پسوند htm بهش اضافه میکنم تا زیبا تر بشه

nassim0
یک شنبه 18 دی 1390, 12:29 عصر
راه حلی که من واسه اینکار استفاده میکنم استفاده از یک ادیتور و یک جدول page هست که محتویات هر صفحه رو با ادیتور ایجاد میکنم و تو فیلدش ذخیره میکنم.
سپپس با url routing موقع فراخوانی یک پسوند htm بهش اضافه میکنم تا زیبا تر بشه
با سلام
استفاده از ادیتور رو مشکل ندام fckeditor رو استاده می کنم اما چطوری می تونم یک صفحه با پسوند aspx به پروژه اضافه کنم ؟

Saman Hashemi
یک شنبه 18 دی 1390, 12:51 عصر
شیوه ای که دوستمون گفتن شیوه خوبیه فقط به جای htm شما بذارید aspx...!

nassim0
یک شنبه 18 دی 1390, 13:13 عصر
من این قسمت سپپس با url routing موقع فراخوانی یک پسوند htm بهش اضافه میکنم رو متوجه نمیشم؟ یعنی باید چکار کرد ؟
اینو تست کردید ؟ جواب داده ؟
میشه یک سمپل بزارید ؟

xalerebvar
یک شنبه 18 دی 1390, 13:25 عصر
تنها کاری که بایستی انجام بدین اینه که یه جدول طراحی کنی که هر موقع کاربری روی دکمه ایجاد صفحه کلیک کرد آی دی یوزر رو در یه فیلدش بریزی و داخل فیلدهای دیگه ش می تونی مثلا اسم صفحه ، عنوان صفحه و ... داشته باشی حالا کل اینا رو می تونی تو یه کنترل داده نشون بدی (همون کاری که سرویس دهنده های وبلاگ می کنن).وبه قول جناب hamid_shrk (http://barnamenevis.org/member.php?99278-hamid_shrk) می تونی از URL Routing استفاده کنی و همون اسم صفحه ای که تو پایگاه داده ذخیره کردی رو به عنوان اسم صفحه تو آدرس بار نشون بدی، اینم یه مقاله در مورد URL Routing (http://barnamenevis.org/showthread.php?317763-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-url-routing-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-4) که می تونی ازش استفاده کنی .
موفق باشی

hamid_shrk
یک شنبه 18 دی 1390, 13:33 عصر
من این قسمت سپپس با url routing موقع فراخوانی یک پسوند htm بهش اضافه میکنم رو متوجه نمیشم؟ یعنی باید چکار کرد ؟
اینو تست کردید ؟ جواب داده ؟
میشه یک سمپل بزارید ؟
سمپل نمیتونم بذارم ولی روتینگ رو بالا لینکش رو گذاشتن میتونی یکم تلاش کنی وخودت درست کنی

nassim0
یک شنبه 18 دی 1390, 13:45 عصر
سمپل نمیتونم بذارم ولی روتینگ رو بالا لینکش رو گذاشتن میتونی یکم تلاش کنی وخودت درست کنی

مشکلم درک کدهایی که توی آموزشتون گذاشتید . جدا متوجه نمیشم چکار می کنن :ناراحت:

programer-ir
یک شنبه 18 دی 1390, 13:57 عصر
من می خواستم با کلیک روی یک buttom بتونم یک صفحه جدید به پروژه اضافه کنم





string fielName = Server.MapPath("~/file.aspx");
//File.Create(fielName);
//File.AppendText(fielName);


// create a writer and open the file
TextWriter tw = new StreamWriter(fielName);

// write a line of text to the file
tw.WriteLine(@"<%@ Page Language=""C#‎‎"" AutoEventWireup=""true"" CodeFile=""file.aspx.cs"" Inherits=""file"" %>

<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">

<html xmlns=""http://www.w3.org/1999/xhtml"">
<head runat=""server"">
<title></title>
</head>
<body>
<form id=""form1"" runat=""server"">
<div>

</div>
</form>
</body>
</html>
");

// close the stream
tw.Close();


tw = new StreamWriter(fielName + ".cs");

// write a line of text to the file
tw.WriteLine(@"using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class file : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(""new File "");

}
}
");

// close the stream
tw.Close();

nassim0
یک شنبه 18 دی 1390, 14:26 عصر
با تشکر از رحمتتون
کد یکمی جابجا شده قسمت اول رو نمی دونم کجا باید قرار بدم . متشکر میشم اگه ه توضیح مختصر هم بدید . من مبتدی ام

programer-ir
یک شنبه 18 دی 1390, 14:52 عصر
80381

این نمونه برنامه اضافه کردن یک صفحه به صورت پویا تو تکس باکس اسم صفحه رو وارد می کنین و اضافه می شه با پسوند مثل:

name.aspx

programer-ir
یک شنبه 18 دی 1390, 15:10 عصر
برنامه بالا یک صفحه ای اس پی می سازه اگر هدفتون اضافه کردن کنترل های سمت کلایت به صفحه است باید در قسمت اول بین تگ فرم کنترل های html تون رو بگزارید ولی اگر می خوایید کنترل سمت سروری بهش اضافه کنید یک فایل دیگه هم باید بسازید به اسم name.designer.cs و کنترل ها و فرمتون رو تعریف کنید


namespace WebApplication18 {


public partial class add {

/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}

nassim0
چهارشنبه 21 دی 1390, 13:32 عصر
سلام با تشكر از لطفتون اين دقيقا همون چيزي بود كه دنبالش بودم. من با sampleton فهميدم بايد چكار كنم ، كمك بزرگي بود . يك سوال ديگه هم داشتم چطوري مي تونم با textbox توي هدر يا بادي صفحه ايجاد شده مطلب اضافه كنم . (اگر بازم لطف كنيد توي sample بشونم بديد ممنون ميشم)


راه حلی که من واسه اینکار استفاده میکنم استفاده از یک ادیتور و یک جدول page هست که محتویات هر صفحه رو با ادیتور ایجاد میکنم و تو فیلدش ذخیره میکنم.
سپپس با url routing موقع فراخوانی یک پسوند htm بهش اضافه میکنم تا زیبا تر بشه

اين روش يك صفحه واقعي به پروژه اضافه مي كنه ؟ چون مي خواستم به هدر و بادي اون صفحه مطلب اضافه كنم .

hamid_shrk
چهارشنبه 21 دی 1390, 13:53 عصر
اين روش يك صفحه واقعي به پروژه اضافه مي كنه ؟ چون مي خواستم به هدر و بادي اون صفحه مطلب اضافه كنم .
خیر این روش صفحه واقعی اضافه نمیکنه اما میشه یک فیلد واسه هدر در نظر گرفت و موقع خوندن از دیتا بیس هدر رو هم عوض کردن

nassim0
چهارشنبه 21 دی 1390, 15:05 عصر
برنامه بالا یک صفحه ای اس پی می سازه اگر هدفتون اضافه کردن کنترل های سمت کلایت به صفحه است باید در قسمت اول بین تگ فرم کنترل های html تون رو بگزارید ولی اگر می خوایید کنترل سمت سروری بهش اضافه کنید یک فایل دیگه هم باید بسازید به اسم name.designer.cs و کنترل ها و فرمتون رو تعریف کنید


namespace WebApplication18 {


public partial class add {

/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}




سلام با تشكر از لطفتون اين دقيقا همون چيزي بود كه دنبالش بودم. من با sampleton فهميدم بايد چكار كنم ، كمك بزرگي بود . يك سوال ديگه هم داشتم چطوري مي تونم با textbox توي هدر يا بادي صفحه ايجاد شده مطلب اضافه كنم . (اگر بازم لطف كنيد توي sample بشونم بديد ممنون ميشم)

alonemm
چهارشنبه 21 دی 1390, 16:28 عصر
باسلام:
سعی کنید از روش ساخت صفحات به صورت پویا و داینامیک استفاده کنید.

(در جواب سوال بالا)میتونید مطالب رو داخل یک جدول از پایگاه داده ذخیره کنید و در قسمت های مختل نمایش بدید و از یک شی literal استفاده کنید.

موفق باشید.

nassim0
پنج شنبه 22 دی 1390, 08:43 صبح
ممكنه از literal و طريقه استفاده ازش براي ايجاد مطلب تو هدر يا بادي توضيح بدبد. ممنونم ميشم

hamid_shrk
پنج شنبه 22 دی 1390, 08:47 صبح
منظور همنه که من گفتم.باید از ادیتور استفاده کنید و اطلاعات رو تو دیتا بیس ذخیره کنید و یک فیلد هم درست کنید که عنوان صفحات رو توش بریزید.
سپس تو پیجیتون فقط یک کنترل literal بزارید و فیلدی که توش صفحتون رو ساختید رو بریزید تو خاصیت text لیترال. وعنوان صفحتون رو هم از دیتا بیس بخونید و قرارش بدین.

nassim0
پنج شنبه 22 دی 1390, 09:35 صبح
با تشكر از همه دوستان كه براي كمك به من وقت ميزارن .
چون ليترال رو بلد نيستم دركش برام سخته شما اساتيد به خودتون نگاه نكنيد من تازه پله اول برنامه نويسيسم. سمپل آقاي programer-ir رو امكان داره شما هم دانلود كنيد . توي cod behind add من نتونستم پسوند فايل رو به صورت پيش فرض .aspx بذارم . همچنين چون وارد نيستم مطمن نيستم كه ميشه مقاديري رو توي متغير ذخيره كرد و اونو توي خط مربوط به تعريف محتويات صفحه وسط مثلا هدر قرار داد يا نه ؟

string s = string.Format("~/{0}", TextBox1.Text);
string fielName = Server.MapPath(s);
//File.Create(fielName);
//File.AppendText(fielName);


// create a writer and open the file
TextWriter tw = new StreamWriter(fielName);

// write a line of text to the file
tw.WriteLine("<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"add.aspx.cs\" Inherits=\"WebApplication18.add\" %><!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\"><head runat=\"server\"><title></title></head><body><form id=\"form1\" runat=\"server\"><div></div></form></body></html>");

// close the stream
tw.Close();


tw = new StreamWriter(fielName + ".cs");

// write a line of text to the file
tw.WriteLine(@"using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class file : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(""new File "");

}
}
");

// close the stream
tw.Close();
}
}

hamid_shrk
پنج شنبه 22 دی 1390, 09:39 صبح
شما فکر کنید لیترال همون label هست.چرا انقدر سختش میکنید؟
literal.text="محتوای فیلد دیتابیس"
همین

nassim0
پنج شنبه 22 دی 1390, 09:48 صبح
يعني كافيه من فقط يك sqldatasource بذارم تيبلم رو بهش وصل كنم بعد توي صفحه literal.text="محتوای فیلد دیتابیس" رو استفاده كنم درست متوجه شدم ؟

توي كدي كه گذاشتم ممكنه بهم بگيد چطوري مي تونم پسوندي به فايل ايجاد شده بدم و اينكه چطوري مسيرش رو عوض كنم ؟

hamid_shrk
پنج شنبه 22 دی 1390, 09:56 صبح
بله درسته.
page.title="عنوان صفحه از دیتا بیس" هم عنوان رو عوض میکنه.
-------------
متاسفانه من رو اون کد کار نکردم / باید منظر بمونی تا خود نویسنده راهنماییت کنه.
شخصا اون روش رو هم پیشنهاد نمیکنم چون بهتره همه چیز داینامیک باشه و بشه مدیریتش کرد.
تو اون حالت اگه مدیر بخواد محتویات صفحه رو عوض کنه باید چیکار کنه؟

nassim0
پنج شنبه 22 دی 1390, 10:03 صبح
ممنونم
مورد بعدي كه بهش خوردم همينه مي خوام بدونم چطوري مي تونم masterpage و گريد ويو به همراه اتصال بانكش رو به صفحه جديد ساخته شده ارتباط بدم . اميدوارم آقاي programmer.ir بتونن راهنماييم كنن .

hamid_shrk
پنج شنبه 22 دی 1390, 10:05 صبح
روشی که من گفتم فقط تو ساخت صفحات استاتیک کاربرد داره.
و بعید میدونم اصلا بشه یک صفحه داینامیک رو بصورت داینامیک ساخت.
یکم تو مدیریت و تحلیل پروژتون تجدید نظر کنید.

nassim0
پنج شنبه 22 دی 1390, 10:32 صبح
الان يكم گيج شدم يعني از روش شما ميشه صفحه رو به يك masterpage وصل كرد و يا براي بادي اون صفحه يك گريدويو به همراه اتصال به بانكش ارتباط داد ؟

hamid_shrk
پنج شنبه 22 دی 1390, 10:40 صبح
خیر نمیتونید این کارارو بکنید
تو این روش شما فقط میتونید عنوان صفحه و همچنین محتویات html داخل Body رو مقدار بدید.

nassim0
پنج شنبه 22 دی 1390, 10:45 صبح
من براي پروژه نياز به ايجاد صفحه واقعي دارم يعني پيشنهاد شما استفاده از روش دوستمون آقاي programmer.ir هستش ؟

hamid_shrk
پنج شنبه 22 دی 1390, 10:54 صبح
آخه دوست عزیز شما صفحات واقعیه aspx همرا با کنترل های دات نت میخواید بسازید و این امکان پذیر نیست.
نمیدونم والا شاید هم دانش من خیلی پایین هست.
از مدیران سایت بپرسید.

programer-ir
پنج شنبه 22 دی 1390, 11:09 صبح
شما از ایجاد صفحات داینامیک چه هدفی دارید برای چه کاری نیاز دارید قراره تو این صفحات چه مطالبی قراربگیره؟؟؟؟ یعنی مدیر سایت قرار به سایت صفحه اضافه کنه؟؟؟ اگه قراره تعداد صفحه ها خیلی زیاد باشه بهتره از دیتابیس و وب روتینگ استفاده بشه و لی اگر تعداد کمه و نیاز به صفحه واقعی از این روش استفاده کنید.

nassim0
پنج شنبه 22 دی 1390, 11:10 صبح
توي صفحه add.aspx.cs در قسمت WriteLine محتويات صفحه ايجاد شده تعريف ميشه ولي چون سطح برنامه نويسي من پايينه نمي تونم توي اون خط وسط هدر يا بادي متغير تعريف كنم . يك خواهش از شما دارم فايل آقاي پروگرامر رو اگر ممكنه باز كنيد اين صفحه رو ببنيد مطمئنم با سطح برنامه نويسي كه از شما ديدم ايده اي بنظرتون ميرسه كه بشه اين كار رو كرد

programer-ir
پنج شنبه 22 دی 1390, 11:11 صبح
آخه دوست عزیز شما صفحات واقعیه aspx همرا با کنترل های دات نت میخواید بسازید و این امکان پذیر نیست.


من اولش که نوشتم فکر می کردم که نمی شه الانش هم شک دارم ولی وقتی با کدنویسی این کارو کردم حتی کنترل های سمت سرور هم بهش اضافه کردم و رویداد سمت سروری براش قرار دادم جواب داد....

nassim0
پنج شنبه 22 دی 1390, 11:16 صبح
سلام ممنونم از فايلتون خيلي كمك كرد
من ميخوام يك سايت درست كنم كه كاربر بتونه هم تبديل به يك سايت تبليغاتي كنه (كه شامل 55 صفحه براي گروه هاي تبليغاتي ميشه كه بتونه براي هر صفحه يك masterpage و يك گريدويو وسط صفحه براي ايجاد مطلب و يك گريدويو براي ستون هاي سمت چپ و راست انتخاب كنه و مطالب رو توش بذاره كار با fckeditor رو بلدم اما اينكه توي صفحه جديد كه شما راهش رو توي فايل نشون داديد رو بتونم تعريف كنم رو مشكل دارم) يا اينكه سايت شخصي باشه . اميدوارم تونسته باشم مطلبم رو درست بيان كنم

programer-ir
پنج شنبه 22 دی 1390, 11:23 صبح
راي هر صفحه يك masterpage

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

programer-ir
پنج شنبه 22 دی 1390, 11:25 صبح
اگربه همین سایت توجه کنید تمام فروم ها قالبشون یکی فقط مطالبشون فرق داره .

nassim0
پنج شنبه 22 دی 1390, 11:33 صبح
من فقط براي مثال masterpag رو گفتم يعني مي خواستم بگم دستم توي تغييرات صفحات جديد كاملا باز باشه و همينطور اين مطلب رو گفتم شايد كاربر بخواد از سايت هم براي تبليغات و هم حالت شخصي استفاده كنه اون موقع تعدادي از صفحات masterpage شون فرق داره . منظورم هر 55 صفحه 55تا مسترپيچ نبود مثال زدم.
توي صفحه add.aspx.cs آيا ميشه توي خط WriteLine در قسمت مثلا تايتل يك متغير قرار داد كه از بانك بخونه ؟ منظورم اينه كه بشه توي هدر يا بادي مطلب گذاشت



tw.WriteLine("<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"add.aspx.cs\" Inherits=\"WebApplication18.add\" %><!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\"><head runat=\"server\"><title></title></head><body><form id=\"form1\" runat=\"server\"><div></div></form></body></html>");

nassim0
جمعه 28 بهمن 1390, 12:59 عصر
اگربه همین سایت توجه کنید تمام فروم ها قالبشون یکی فقط مطالبشون فرق داره .

سلام من چطور می تونم همچین محیطی رو بنویسم ؟