PDA

View Full Version : سوال: افزودن صفحه در RunTime



Zabi42
پنج شنبه 12 فروردین 1389, 16:14 عصر
با سلام خدمت تمام دوستان محترم
یه سوال بسیار حیاتی دارم چطور میشه یک صفحه ی .aspx در زمان RunTime ایجاد کرد؟؟؟؟؟
مثلا سه تا TextBox داشته باشیم که یکی نام صفحه ی .aspx رو بگیره دومی عنوان (Title) صفحه رو بگیره سومی هم آدرس محل ذخیره شدن صفحه رو بگیره و بعد توسط یک Button صفحه ی مورد نظر با مشخصات درون TextBox ها بوجود بیاد.
و اگر هم بشه که این صفحه حاوی MasterPage هم باشه که دیگه خیلی عالیه

alireza_s_84
پنج شنبه 12 فروردین 1389, 16:57 عصر
با سلام خدمت تمام دوستان محترم
یه سوال بسیار حیاتی دارم چطور میشه یک صفحه ی .aspx در زمان RunTime ایجاد کرد؟؟؟؟؟
مثلا سه تا TextBox داشته باشیم که یکی نام صفحه ی .aspx رو بگیره دومی عنوان (Title) صفحه رو بگیره سومی هم آدرس محل ذخیره شدن صفحه رو بگیره و بعد توسط یک Button صفحه ی مورد نظر با مشخصات درون TextBox ها بوجود بیاد.
و اگر هم بشه که این صفحه حاوی MasterPage هم باشه که دیگه خیلی عالیه

سلام دوست عزیز:
خوب اینکه کاری نداره فایلهای aspx هم فایلهای متنی هستن شما با استفاده از کد میتونید یک رشته ایجاد کنید که این رشته محتوای صفحه aspx شما باشه اگر هم نیاز به صفحه مسترپیج دارید که اگر وجود داره که باید توی همون رشته مشخص کنید و گرنه برای ایجاد اون هم مثل یک فایل متنی عمل میکنیم بعد که رشته ی محتوای فایلها رو ساختین توی مسیر موردنظر با پسوند aspx ذخیره کنید و برای نشان دادن سورسش هم رشته تولید شده رو بریزید توی Textbox .
موفق باشید

Zabi42
پنج شنبه 12 فروردین 1389, 19:08 عصر
از alireza_s_84 ممنون ولی مث که متوجه سوال نشدن
من میخوام به صورت دینامیک یه صفحه ایجاد کنم یعنی کپه رو دکمه ی (صفحه ی جدید) کلیک کنی یه صفحه ی جدید تو فلان ادرس ایجاد کنه

Zabi42
پنج شنبه 12 فروردین 1389, 19:15 عصر
شایدم من پاسخ شما رو متوجه نشدم

alireza جان میشه بیشتر توضیح بدی ؟؟
اگه ساده است یه مثال برام میزنی با کد

exlord
پنج شنبه 12 فروردین 1389, 19:52 عصر
اینجوری میتونی بنویسی ولی مطمین نیستم که کار بکنه یا نه؟؟؟

protected void Button1_Click1(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("<%@ Page Language='C#' AutoEventWireup='true' CodeBehind='")
.Append(txtName.Text)
.Append(".aspx.cs' Inherits='WebApp.")
.Append(txtName.Text)
.Append("' %>")

.Append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>")
.Append("<html><head runat='server'>")
.Append("<title>").Append(txtTitle.Text).Append("</title>")
.Append("</head><body></body></html>");

FileStream fs = File.Create(Server.MapPath(txtPath.Text) + "\\" + txtName + ".aspx");
fs.WriteByte(Convert.ToByte(sb.ToString()));
sb.Clear();
fs.Close();
}

alireza_s_84
پنج شنبه 12 فروردین 1389, 20:53 عصر
از alireza_s_84 ممنون ولی مث که متوجه سوال نشدن
من میخوام به صورت دینامیک یه صفحه ایجاد کنم یعنی کپه رو دکمه ی (صفحه ی جدید) کلیک کنی یه صفحه ی جدید تو فلان ادرس ایجاد کنه

سلام به دو پست پایینتر یک نگاهی بندازید خوب منظورم رو متوجه میشی.


اینجوری میتونی بنویسی ولی مطمین نیستم که کار بکنه یا نه؟؟؟
خیلی هم خوب کار میکنه آدرسش رو توی مرورگر تایپ کن تا نتیجه رو ببینی.
جمیعا موفق باشید

Zabi42
پنج شنبه 12 فروردین 1389, 20:56 عصر
اقای xlord ممنون از راهنماییتون
کدها رو امتحان میکنم خبرشو می دم

Zabi42
پنج شنبه 12 فروردین 1389, 21:22 عصر
بچه ها چه namespace رو باید تعریف کنم؟؟؟؟؟ برای StringBuilder و FileStream

Zabi42
پنج شنبه 12 فروردین 1389, 21:59 عصر
دوستان منو ببخشید آخه یخورده عجولم
آقا namespace های زیرو اضافه کردم حل شد
using System.IO;
using System.Text;
حالا وقتی run می کنم از آدرسی که میدم error می گیره و میگه:

'C:\Users\Sia\Documents\Visual Studio 2008\WebSites\ListView\Source' is not a valid virtual path.
این مسیری هست که پروژم save شده و می خوام تو پرونده ی sorce که تو solution هست save شه

alireza_s_84
پنج شنبه 12 فروردین 1389, 23:51 عصر
دوستان منو ببخشید آخه یخورده عجولم
آقا namespace های زیرو اضافه کردم حل شد
using System.IO;
using System.Text;
حالا وقتی run می کنم از آدرسی که میدم error می گیره و میگه:

'C:\Users\Sia\Documents\Visual Studio 2008\WebSites\ListView\Source' is not a valid virtual path.
این مسیری هست که پروژم save شده و می خوام تو پرونده ی sorce که تو solution هست save شه
شما متد Server.Mappath یک url نسبی رو به مسیر مطلق تبدیل کنید و بعد ذخیره کنید برای مثال اگر پوشه ای بنام pages توی وب سایتتون داشته باشید میتونید اینجوری توش فایلتون رو ذخیره کنید:


string pagePath=Server.MapPath("pages/myPage.aspx");

Zabi42
جمعه 13 فروردین 1389, 00:26 صبح
protected void Button1_Click1(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("<%@ Page Language='C#‎‎‎‎' AutoEventWireup='true' CodeBehind='")
.Append(txtName.Text)
.Append(".aspx.cs' Inherits='WebApp.")
.Append(txtName.Text)
.Append("' %>")

.Append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>")
.Append("<html><head runat='server'>")
.Append("<title>").Append(txtTitle.Text).Append("</title>")
.Append("</head><body></body></html>");

FileStream fs = File.Create(Server.MapPath(txtPath.Text) + "\\" + txtName + ".aspx");
fs.WriteByte(Convert.ToByte(sb.ToString()));
sb.Clear();
fs.Close();




دوستان مشکل virtual path هم حل شد ادرس مجازی رو هم با علامت ( ~/)نشان می دهند که آدرس من میشه
(~/source)
الان این error رو می گیره:
Input string was not in a correct format
چون متغیر FileStream از نوع byte هست و دستور fs.WriteByte(Convert.ToByte(sb.ToString()));
نمی تونه نوع string رو به byte تبدیل کنه حالا می خوام بدونم برای حل این مشکل از چه دستوری باید استفاده کنم؟؟؟؟؟؟؟؟
در ضمن یک error هم اون اول داشت که از دستور sb.Clear(); می گرفت که می گفت همچین تابعی (Clear()) برایsb از نوع StringBuilder وجود نداره من این کد رو حذف کردم (//sb.Clear()) و برنامه رو run کردم . می خواستم بدونم از چه تابعی برای پاک کردن رشته ی درون sb باید استفاده کنم ؟؟؟؟ و اصلا این کار برای چی هست؟؟؟؟
تقریبا منطق این کدها رو متوجه شدم ولی اگه یه توضیح کوچکی هم برام بدین ممنون میشم چون من با توابع StringBuilder و FileStream کار نکردم.

alireza_s_84
جمعه 13 فروردین 1389, 09:51 صبح
دوستانی که الان on هستند ، مدیران محترم یه راهنمایی ، کمکی نمی کنین مشکل حل شه؟؟؟؟؟
گیرم!!
سلام


FileStream fs = File.Create(Server.MapPath(txtPath.Text) + "\\" + txtName + ".aspx");
fs.WriteByte(Convert.ToByte(sb.ToString()));
sb.Clear();
fs.Close();

اینجوری تغییر بدین:


FileStream fs = File.Create(Server.MapPath(txtPath.Text) + "\\" + txtName + ".aspx");
StreamWriter sw = new StreamWriter(fs);
fs.Write(sb.ToString());
sb.Clear();
sw.Close();
fs.Close();

Zabi42
جمعه 13 فروردین 1389, 16:30 عصر
alireza جان ممنون از راهنماییت ولی دو تا error داره
1- از کد
sb.Clear();

Error 10 'System.Text.StringBuilder' does not contain a definition for 'Clear' and no extension method 'Clear' accepting a first argument of type 'System.Text.StringBuilder' could be found (are you missing a using directive or an assembly reference?)

2- ازدستور


fs.Write(sb.ToString());




Error 9 No overload for method 'Write' takes '1' arguments


می شه راجع به کدها یه توضیحی بدی چون من تا حالا ازشون استفاده نکرم
مثلا fw چی کار میکنه و برای چی ایجادش کردی؟؟؟ چون دیگه ازش استفاده ای هم نشده؟؟؟؟؟

alireza_s_84
جمعه 13 فروردین 1389, 16:55 عصر
alireza جان ممنون از راهنماییت ولی دو تا error داره
1- از کد
sb.Clear();

Error 10 'System.Text.StringBuilder' does not contain a definition for 'Clear' and no extension method 'Clear' accepting a first argument of type 'System.Text.StringBuilder' could be found (are you missing a using directive or an assembly reference?)

2- ازدستور


fs.Write(sb.ToString());




Error 9 No overload for method 'Write' takes '1' arguments


می شه راجع به کدها یه توضیحی بدی چون من تا حالا ازشون استفاده نکرم
مثلا fw چی کار میکنه و برای چی ایجادش کردی؟؟؟ چون دیگه ازش استفاده ای هم نشده؟؟؟؟؟
سلام ببخشید درسته اینجوری تصحیح میکنم:


fs.Write(sb.ToString());

منظورم این بوده:


sw.Write(sb.ToString());

این رو هم حذف کن:

sb.Clear();
در مورد: StreamWriter کار این کلاس اینه که در یک جریان یا استریم متن مورد نظر ما رو مینویسه. fs همون استریم ماست که از نوعه FileStream و کلاس StrnigBuilder هم کلاسی برای ایجاد رشته هاست به جای اینکه بنویسیم "A" + "B" با استفاده از متدهای این کلاس رشته مون رو بوجود میاریم بعد اونو توی فایل مینویسیم.
باز هم سوالی بود مطرح کنید

Zabi42
جمعه 13 فروردین 1389, 19:36 عصر
اقا مشکل error دوم حل شد باید توی اون دستور به جای fs ، sw قرار دهیم ولی error اول هنوز به قوت خودش پا برجاست.


protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("<%@ Page Language='C#' AutoEventWireup='true' CodeBehind='")
.Append(txtName.Text)
.Append(".aspx.cs' Inherits='WebApp.")
.Append(txtName.Text)
.Append("' %>")
.Append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>")
.Append("<html><head runat='server'>")
.Append("<title>").Append(txtTitle.Text).Append("</title>")
.Append("</head><body></body></html>");


FileStream fs = File.Create(Server.MapPath(txtPath.Text) + "\\" + txtName + ".aspx");
StreamWriter sw = new StreamWriter(fs);
sw.Write(sb.ToString());
//sb.Clear();
sw.Close();
fs.Close();

}

خب من بعد از Run شدن صفحه مقدار texBox ها رو به این صورت دادم:
txtName.text=test
txtTitle.text=welcome
txtPath.text=~/source
صفحه ی جدید ساخته میشه اما سه تا اشکال داره:
1- صفحه ی CodeBehind رو نمی سازه یعنی صفحه ی test.aspx.cs
2- مشکل در اسم صفحه ی .aspx است یعنی بجای اینکه از متن موجود در txtName استفاده کنه صفحه ای با نام System.Web.UI.WebControls.TextBox.aspx رو تو پوشه ی source می سازه. در صورتی که باید test.aspx رو بسازه
3- این error رو هنگام run کردن صفحه ی جدید می ده:
Error: Could not load type 'WebApp.text'

Zabi42
جمعه 13 فروردین 1389, 20:04 عصر
alireza جان ممنون از پاسخت

کدهایی که تو صفحه ی جدید یعنی System.Web.UI.WebControls.TextBox.aspx ساخته شده بصورت زیر است:



<%@ Page Language='C#' AutoEventWireup='true' CodeBehind='test.aspx.cs' Inherits='WebApp.test' %>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html><head runat='server'><title>welcom</title></head>

<body></body></html>

البته همه رو تو یه خط نوشته ولی من اونهارو زیر هم گذاشتم براتون تا راحتر ببینید
یه سوال دارم می خوام بدونم دستور Inherits چیه؟؟ و تو Run شدن صفحه چه نقشی داره؟؟؟؟

Himalaya
شنبه 14 فروردین 1389, 00:11 صبح
مثلا سه تا TextBox داشته باشیم که یکی نام صفحه ی .aspx رو بگیره دومی عنوان (Title) صفحه رو بگیره سومی هم آدرس محل ذخیره شدن صفحه رو بگیره و بعد توسط یک Button صفحه ی مورد نظر با مشخصات درون TextBox ها بوجود بیاد

دلیل اینکه چرا میخوای تو ران تایم یه صفحه اونم از نوع aspx ایجاد کنی رو نمیدونم ولی اگه این چیزایی رو که گفتی،میخوای خوب با 2 تا صفحه هم میشه حلش کرد...تو این حالت دیگه احتیاجی به آدرس محل ذخیره هم نداری (چون صفحه مقصد از قبل ایجاد شده) و احتیاجی به نام صفحه هم نداری ( چون این صفحه قبلا ایجاد شده پس حتما یه اسم هم داره دیگه)
صفحه اول یه دکمه با 1 تکست یاکس (جهت عنوان صفحه فقط)
صفحه دوم هم تو قسمت تایتل از کنترل literal استفاده میکنه(اگه دیکتشو درست نوشته باشم) :متفکر:
تو صفحه اول با زدن دکمه مقداری که تو تکست باکس وارد کردی با کوئری استرینگ به صفحه دوم میفرستی و اونجا اونو تو لیترال نشون میدی
دیگه واسه این کار لازم نیست یه صفحه تو ران تایم ایجاد کنی و اونو سیو کنی و تو کدهای سی شارپ اون به مکل بر بخوری و ... مگه این که بخوای کار خاصی انجام بدی که این روش جواب نده

Zabi42
شنبه 14 فروردین 1389, 00:37 صبح
اقای karaji333 ممنون از پاسختون
ولی می خوام کاربر بتونه یه صفحه ایجاد بکنه و مثلا یه سری اطلا عات برای نمایش توش بذاره مثل cmsها
حالا اگه می شه راجع به لیترال ها یه توضیحی میدی؟؟

Himalaya
شنبه 14 فروردین 1389, 00:45 صبح
ولی می خوام کاربر بتونه یه صفحه ایجاد بکنه و مثلا یه سری اطلا عات برای نمایش توش بذاره مثل cmsها
خوب پایگاه داده واسه همین کاراس دیگه... شما هر اطلاعاتی رو که کاربر میخواد وارد کنه رو تو بانک ذخیره میکنید و هر وقت که نیاز بود اطلاعات یه رکورد رو بر حسب یه ایدی تو یه صفحه ( فقط یه صفحه) نشون میدید... اینکه شما چند کاربر داشته باشید و هر کاربر هم بخواد چند بار اطلاعات جدید وارد کنه و شما بخوای به ازای هر کدوم از اونا یه صفحه درست کنی، این اصلا کار معقولی نیست

Zabi42
شنبه 14 فروردین 1389, 00:56 صبح
خوب می خوام مث این سیستم های مدیریت محتوا باشه مثلا مدیر شاید بخواد یه صفحه ی جدید به سایتش اضافه کنه
لطفا از error اون کد ها سر در میارید یه کمکی بکنید

Himalaya
شنبه 14 فروردین 1389, 02:05 صبح
- صفحه ی CodeBehind رو نمی سازه یعنی صفحه ی test.aspx.cs
خوب شاید ساختنش اونقدر مشکل نباشه (همونطور که test.aspx رو ساختی) ولی مدیریتش ممکنه سخت باشه...فرض کن تو اون صفحه قراره کلیک یه دکمه اتفاق بیافته (ممکن هم هست نیافته که در این صورت رویداد مربوط به کلیک رو تو قسمت کدهای html رو هم دیگه نداری) یعنی کاربرای شما همشون برنامه نویسن که بخوان کدهای مربوط به این حالتها رو هم خودشون وارد کنن :متفکر: من که فکر نمیکنم (تازه این یکی از مشکلاتشه... مطمئنا رفته رفته که جلو بری مشکلای بزرگتری جلوت سبز میشن)


- مشکل در اسم صفحه ی .aspx است یعنی بجای اینکه از متن موجود در txtName استفاده کنه صفحه ای با نام System.Web.UI.WebControls.TextBox.aspx رو تو پوشه ی source می سازه. در صورتی که باید test.aspx رو بسازه
باید هم یه همچین اسمی برات بزاره... txtName نه... txtName.text


FileStream fs = File.Create(Server.MapPath(txtPath.Text) + "\\" + txtName.text + ".aspx");


3- این error رو هنگام run کردن صفحه ی جدید می ده:
Error: Could not load type 'WebApp.text'
احتمالا منظورت از WebApp.text همون WebApp.test بوده

Zabi42
شنبه 14 فروردین 1389, 16:56 عصر
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("<%@ Page Language='C#' AutoEventWireup='true' CodeBehind='")
.Append(txtName.Text)
.Append(".aspx.cs' Inherits='WebApp.")
.Append(txtName.Text)
.Append("' %>")
.Append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>")
.Append("<html><head runat='server'>")
.Append("<title>").Append(txtTitle.Text).Append("</title>")
.Append("</head><body></body></html>");

FileStream fs = File.Create(Server.MapPath(txtPath.Text) + "\\" + txtName.Text + ".aspx");
StreamWriter sw = new StreamWriter(fs);
sw.Write(sb.ToString());
sw.Close();
fs.Close();

}
protected void Button2_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("using System;")
.Append("using System.Collections;")
.Append("using System.Configuration;")
.Append("using System.Data;")
.Append("using System.Linq;")
.Append("using System.Web;")
.Append("using System.Web.Security;")
.Append("using System.Web.UI;")
.Append("using System.Web.UI.HtmlControls;")
.Append("using System.Web.UI.WebControls;")
.Append("using System.Web.UI.WebControls.WebParts;")
.Append("using System.Xml.Linq;")
.Append("public partial class ").Append(txtName.Text).Append(" : System.Web.UI.Page")
.Append("{")
.Append("protected void Page_Load(object sender, EventArgs e)")
.Append("{")
.Append("}")
.Append("}");

FileStream fs = File.Create(Server.MapPath(txtPath2.Text) + "\\" + txtName.Text + ".aspx.cs");

StreamWriter sw = new StreamWriter(fs);
sw.Write(sb.ToString());
sw.Close();
fs.Close();

دوستان سلام
کدهای بالا رو به برنامه اضافه کردم و مشکل اول (یعنی اسم صفحه ی .aspx) و مشکل دوم (یعنی ساخت صفحه ی CodeBehind ) به زیبایی حل شد فقط می مونه مشکل اخر که اون error ای هست که موقع اجرا صفحه ی جدید می ده

Error Could not load type 'WebApp.test'.

یه جورایی انگار این دو تا صفحه یعنی test.aspx و test.aspx.cs با هم ارتباط ندارن کسی می تونه بگه ارتباط این دو تا صفحه تو ASP.net چجوریه؟؟؟؟؟؟
یه صفحه ی .aspx چطوری Run می شه؟؟؟؟
یه توضیحی راجع Inherits بدید و بگید توی Run شدن صفحه چه نقشی داره؟؟؟؟؟؟

alireza_s_84
شنبه 14 فروردین 1389, 17:32 عصر
یه جورایی انگار این دو تا صفحه یعنی test.aspx و test.aspx.cs با هم ارتباط ندارن کسی می تونه بگه ارتباط این دو تا صفحه تو ASP.NET چجوریه؟؟؟؟؟؟
یه صفحه ی .aspx چطوری Run می شه؟؟؟؟
یه توضیحی راجع Inherits [COLOR=black]بدید و بگید توی Run شدن صفحه چه نقشی داره؟؟؟؟؟؟

دوست عزیز: شما توی Inherits باید اسم کلاس رو بنویسید(یعنی از کدوم کلاس ارث بری داری این صفحه aspx) که میشه اسم فایلcodeBehind بدون .cs امیدوارم متوجه شده باشید ساده تر نمیشد بگم.

exlord
شنبه 14 فروردین 1389, 18:48 عصر
دوستان سلام
کدهای بالا رو به برنامه اضافه کردم و مشکل اول (یعنی اسم صفحه ی .aspx) و مشکل دوم (یعنی ساخت صفحه ی CodeBehind ) به زیبایی حل شد فقط می مونه مشکل اخر که اون error ای هست که موقع اجرا صفحه ی جدید می ده

یه جورایی انگار این دو تا صفحه یعنی test.aspx و test.aspx.cs با هم ارتباط ندارن کسی می تونه بگه ارتباط این دو تا صفحه تو ASP.NET چجوریه؟؟؟؟؟؟
یه صفحه ی .aspx چطوری Run می شه؟؟؟؟
یه توضیحی راجع Inherits بدید و بگید توی Run شدن صفحه چه نقشی داره؟؟؟؟؟؟


عزیز جان برادر webApp ماله پروژه منه .... namespace پروژه من...
شما جای اون namespace خودتو بزار...

Zabi42
شنبه 14 فروردین 1389, 19:32 عصر
کد رو اصلاح کردم و Inherits=txtName.text قرار دادم که اینطوری توی Inherits اسم کلاس قرار می گیره ولی بازم موقع run صفحه ی test ارور داریم به صورت زیر :



Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load type 'test'.

Source Error:


Line 1: <%@ Page Language='C#' AutoEventWireup='true' CodeBehind='test.aspx.cs' Inherits='test' %>
Line 2: <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
Line 3: <html>


Source File: /ListView/test.aspx Line: 1


به نظر شما ایراد از کجاست؟؟؟؟

Zabi42
شنبه 14 فروردین 1389, 19:39 عصر
اقا exlord منظورتون از namespace اسم پروژست دیگه؟؟؟؟مثلا مال شما WebApp هست و نام پروژه ی من ListView درسته؟؟
اگه منظورت این بود باز مشکل داشت چون Inherits='ListView.test' هم قرار دادم و اجرا نشد همون error رو داد

Himalaya
شنبه 14 فروردین 1389, 20:16 عصر
بابا تو پروژت یه صفحه با اسم test از new item ایجاد کن و خط اولش رو نگاه کن ببین چی میشه


<%@PageLanguage="C#‎"AutoEventWireup="true"CodeBehind="test.aspx.cs"Inherits="ListView.test" %>


البته فکر کنم که داری این فایلها رو که ایجاد میکنی تو یه فولدر میریزی... کد بالا واسه وقتیه که تو صفحه test رو تو root اصلی پروژه ایجاد کرده باشی... ولی اگه بخوای یه فولدر مثلا به اسم new folder درست کنی و فایلهای ایجاد شده رو تو اون قرار بدی کد بالا میشه این


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="ListView.NewFolder.test" %>

قسمت Inherits فرق میکنه

Zabi42
یک شنبه 15 فروردین 1389, 18:51 عصر
دوست عزیز karaji333
اصلا ربطی به اسم پروژه و اینکه صفحه ی جدید تو Root هست یا یهFolder جدید نداره همونطور که دوستمون اقا alireza_s_84 گفتن مقدار Inherit برابر نام کلاسی هست که تو صفحه ی CodeBehind ساختیم .
همه ی این ها با توجه به دستوراتی که تو پست های قبلی گذاشتم درست ایجاد میشه ولی نمی دونم چرا صفحه ی ایجاد شده رو run نمی کنه و اون Error رو می ده
حالا اگه فکر می کنی می تونی کمک کنی بهتره کد هایی که تو پست های قبل گذاشتم کپی کنی تو vs و ببینی مشکل چیه؟؟؟

Himalaya
دوشنبه 16 فروردین 1389, 13:52 عصر
دوست عزیز karaji333
اصلا ربطی به اسم پروژه و اینکه صفحه ی جدید تو Root هست یا یهFolder جدید نداره همونطور که دوستمون اقا alireza_s_84 گفتن مقدار Inherit برابر نام کلاسی هست که تو صفحه ی CodeBehind ساختیم .
همه ی این ها با توجه به دستوراتی که تو پست های قبلی گذاشتم درست ایجاد میشه ولی نمی دونم چرا صفحه ی ایجاد شده رو run نمی کنه و اون Error رو می ده
حالا اگه فکر می کنی می تونی کمک کنی بهتره کد هایی که تو پست های قبل گذاشتم کپی کنی تو vs و ببینی مشکل چیه؟؟؟

این چیزی بود که موقع استفاده از add new item و اضافه کردن یه صفحه جدید به پروژه تو قسمت Inherits قرار میگرفت



حالا اگه فکر می کنی می تونی کمک کنی بهتره کد هایی که تو پست های قبل گذاشتم کپی کنی تو vs و ببینی مشکل چیه؟؟؟


لحن حرف زدنت اصلا قشنگ نیست ...واسه همین دلیلی نمیبینم بیشتر از این کمکت کنم

Zabi42
دوشنبه 16 فروردین 1389, 20:44 عصر
ناراحت نشو داداش
همین قدر هم که وقت گذاشتی و جواب دادی دمت گرم.

Zabi42
چهارشنبه 18 فروردین 1389, 17:33 عصر
نمی دونم باید یه تاپیک جدید باز کنم یا همین رو ادامه بدم
من فکر می کنم راه حل مشکلمو پیدا کردم ولی زیاد در موردش نمی دونم از دوستان اگه کسی نظری داره یا مطلبی داره که می تونه کمکم کنه ممنون میشم اینجا ارایه کنه
اگه تو پست های قبلی نگاه کنید می بینید که توسط کدهایی که در پست شماره ی 22 گذاشتم می شه در حالت RunTime یک صفحه ی .aspx به همراه صفحه ی CodeBehind اون رو با توجه به مشخصاتی که از TextBox ها می گیریم بسازیم ولی مشکل اینجا بود که این صفحه ی جدید ایجاد شده Run نمی شد و error زیر رو می داد:

Error Could not load type 'test'.
که در واقع test اسم صفحه ی جدیدی هست که در RunTime ایجاد کردیم
به نظر من این دو تا صفحه ایجاد شده یعنی text.aspx و test.aspx.cs نمی تونن با هم ارتباط برقرار کنن.

فکر می کنم برای حل این مشکل باید از HttpHandler استفاده کنیم و اون رو تنظیم کنیم چون اینجور که از ظواهر امر پیداست برای Run شدن یه صفحه در پشت پرده از HttpHandler استفاده می شه

حالا اگه کسی نظری ، مطلبی و هر چیز دیگه ای تو این زمینه داره که می تونه کمک کنه تو همین تاپیک بزاره

Zabi42
پنج شنبه 19 فروردین 1389, 01:22 صبح
HttpHandler چطور یه صفحه رو Load می کنه؟؟؟؟:گیج:

alireza_s_84
پنج شنبه 19 فروردین 1389, 01:33 صبح
HttpHandler چطور یه صفحه رو Load می کنه؟؟؟؟:گیج:

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

Zabi42
پنج شنبه 19 فروردین 1389, 02:08 صبح
من هم حرف شما رو قبول دارم بلاخره ادم باید از یه جایی شروع کنه دیگه مطالبی رو که من باید مطالعه کنم تا به این سطح برسم چیه من مشتاقانه دنبال مطالب و مسیر درست یادگیری تو این زمینه ام
پس خواهش می کنم مطا لب پیش نیاز و بهم بدید مطالعه کنم