PDA

View Full Version : سوال: دستور ایجاد صفحه و ساخت لینک



milad4240
یک شنبه 03 مرداد 1389, 01:15 صبح
با سلام خدمت اعضای محترم :

میخواستم بدونم آیا در ASP.NET این امکان وجود دارد که با استفاده از دستورات یک صفحه ایجاد کنیم و با دستورات محتوای صفحه ی ایجاد شده را طراحی کنیم.
و سوال بعدی من هم این است که آیا میتوان یک آدرسی را از بانک اطلاعاتی خوان و آن را لینک کرد.

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

alihassanabadi
یک شنبه 03 مرداد 1389, 09:22 صبح
با سلام


میخواستم بدونم آیا در ASP.NET این امکان وجود دارد که با استفاده از دستورات یک صفحه ایجاد کنیم و با دستورات محتوای صفحه ی ایجاد شده را طراحی کنیم

تا حالا همچين موردي رو نديدم


و سوال بعدی من هم این است که آیا میتوان یک آدرسی را از بانک اطلاعاتی خوان و آن را لینک کرد

به سادگي ميشه اين كار رو انجام داد
1- يه كلاس به اسم MainClass به پروژت اضافه كن
2- با فرض اينكه جدولي به نام LinkTable داري و اين جدول داراي دو فيلد
name نام سايت
address آدرس سايت
هست.
3- متد زير رو به كلاس اضافه كن


publicstaticstring allLink()
{
string ConnectionString = "آدرس پايگاه داده";
SqlConnection Connection = newSqlConnection(ConnectionString);
string CommandText = "select *from LinkTable";
SqlCommand Command = newSqlCommand(CommandText, Connection);
Command.CommandType = CommandType.Text;
SqlDataReader RecordSet;
string fulladdress = "", name,address;
Connection.Open();
RecordSet = Command.ExecuteReader();
while (RecordSet.Read())
{
address= RecordSet["Address"].ToString();//آدرس سايت
name= RecordSet["Name"].ToString();//نام سايت
//تبديل به لينك
fulladdress += String.Format("<p align=\"center\"><a href=\"{0}\" target=\"_blank\" >{1}</a></p>", address ,name);
}
Connection.Close();
RecordSet.Close();
return fulladdress;
}

توجه كن كه اين متد بايد از نوع static باشه
4-از جعبه ابزار از كنترل هاي html يه table به صفحت اضافه كن
البته ميتونه هر كنترل ديگه باشه مثل panel
5- درنهايت


<tablestyle="width: 100%">
<tr>
<tdstyle="text-align: center">
<%=MainClass.allLink()%>
</td>
</tr>
</table>

aminghaderi
یک شنبه 03 مرداد 1389, 17:55 عصر
با سلام خدمت اعضای محترم :

میخواستم بدونم آیا در ASP.NET این امکان وجود دارد که با استفاده از دستورات یک صفحه ایجاد کنیم و با دستورات محتوای صفحه ی ایجاد شده را طراحی کنیم.
و سوال بعدی من هم این است که آیا میتوان یک آدرسی را از بانک اطلاعاتی خوان و آن را لینک کرد.

خواهشمنم توضیحات کامل به همراه دستورات بدهید
متشکرم.
به نظر من با شناختی که من از دات نت پیدا کردم ، احتمال که این کار امکان پذیر باشه هست ولی به قول دوستمون منهم تا بحال ندیدم.
ولی از جایی که خود صفحه یه کلاس هست و با یه فایل اچ تی ام ال معمولی به نظر من که احتمال قوی این مورد انجام پذیر باشه.
سوال 2 :

اطلاعات رو به هر صورتی که از دیتابیس می خونید، بخونید و داخل یه متغیر مثلا:
StrLink قرار بدید.
داخل قسمت دیزاین یه Div با ای دی مثلا Link ایجاد کنید و خاصیت Ranat="server" قرار بدید.
بعد داخل قسمت کد :
link.innerHtml="<a href='" +StrLink +"' target='_blank'>YourLink</a>


موفق باشی.

Alireza_Salehi
یک شنبه 03 مرداد 1389, 20:24 عصر
با سلام خدمت اعضای محترم :

میخواستم بدونم آیا در ASP.NET این امکان وجود دارد که با استفاده از دستورات یک صفحه ایجاد کنیم و با دستورات محتوای صفحه ی ایجاد شده را طراحی کنیم.

قسمت دومش که به سادگی امکان پذیره، همه کنترل های HTML و ASP.NET ، استایل ها و .. از طریق کد قابل تولید و نمایش در خروجی هستند.

نحوه کار هم به این صورته که باید محتوای صفحه را با کلاس ها تولید کنید و با کلاس Response و HTMLTextWriter می توانید آن را به خروجی ببرید.

برای تولید صفحه هم باید در رویداد Application_BeginRequest که در فایل global.asax وجود دارد بررسی کنید اگر آدرس با منطبق بود صفحه مورد خروجی مورد نظر را به عنوان پاسخ ارسال کنید.

یک نمونه تولید پنجره popup حاوی یک جدول با استفاده از کلاس های دات نت در سی شارپ:
context.Response.ContentType = "text/plain";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
Int32 startHour = 13, endHour = 20, hourCounter = 0;
Int32 totalColumns = (endHour - startHour + 1) * 2 + 1;
Int32 hourColumns = endHour - startHour + 1;

NovinDiet.ClinicDataContext db = new NovinDiet.ClinicDataContext();
DateTime now = DateTime.Parse(context.Request.QueryString["d"].Trim());
DateTime startDate = new DateTime(now.Year, now.Month, now.Day, startHour, 0, 0);
DateTime endDate = new DateTime(now.Year, now.Month, now.Day, endHour, 55, 0);

DateTime startDateAlert = new DateTime(now.Year, now.Month, now.Day, 14, 0, 0);
DateTime endDateAlert = new DateTime(now.Year, now.Month, now.Day, 20, 0, 0);

List<TimeList> dbList = (from mv in db.novindiet_MemberVisits
where mv.Date >= startDate && mv.Date <= endDate &&
mv.Id.Trim().StartsWith(context.Request.QueryStrin g["t"].Trim().ToUpper())
select new TimeList()
{
Date = new DateTime(mv.Date.Year, mv.Date.Month, mv.Date.Day, mv.Date.Hour, mv.Date.Minute, 0),
VisitType = mv.VisitType
}).AsParallel().ToList();

HtmlTable table = new HtmlTable()
{
Border = 1,
BorderColor = "#494949",
CellPadding = 1,
CellSpacing = 1,
EnableViewState = false
};
table.Attributes.Add("class", "ts");
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell = new HtmlTableCell() { ColSpan = totalColumns };
HtmlAnchor a = new HtmlAnchor() { InnerText = "X", HRef = "#", Title = "بستن فرم" };
a.Style.Add("float", "left");
a.Attributes.Add("onclick", String.Format("javascript:CloseTimeSelector('{0}');", context.Request.QueryString["c"].Trim()));
cell.Controls.Add(a);
HtmlGenericControl ctrl;
String title = "جدول روزانه بیماران";

ctrl = new HtmlGenericControl("span") { InnerText = title };
ctrl.Style.Add("float", "right");

ctrl.Style.Add("color", "#FFFFFF");
cell.Controls.Add(ctrl);
row.Attributes.Add("class", "tsh");
row.Cells.Add(cell);
table.Rows.Add(row);

row = new HtmlTableRow();
cell = new HtmlTableCell() { ColSpan = totalColumns };

a = new HtmlAnchor() { InnerText = "<<<", HRef = "#", Title = "ماه قبل" };
a.Style.Add("float", "right");
cell.Controls.Add(a);
a.Attributes.Add("onclick", String.Format("javascript:ShowTimeSelector('{0}','{1}','{2}','{3} ','{4}','{5}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
now.AddDays(-30).ToString("MM/dd/yyyy"),
context.Request.QueryString["t"].Trim().ToUpper()));
a = new HtmlAnchor() { InnerText = "<<", HRef = "#", Title = "هفته قبل" };
a.Style.Add("float", "right");
cell.Controls.Add(a);
a.Attributes.Add("onclick", String.Format("javascript:ShowTimeSelector('{0}','{1}','{2}','{3} ','{4}','{5}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
now.AddDays(-7).ToString("MM/dd/yyyy"),
context.Request.QueryString["t"].Trim().ToUpper()));
a = new HtmlAnchor() { InnerText = "<", HRef = "#", Title = "روز قبل" };
a.Style.Add("float", "right");
a.Attributes.Add("onclick", String.Format("javascript:ShowTimeSelector('{0}','{1}','{2}','{3} ','{4}','{5}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
now.AddDays(-1).ToString("MM/dd/yyyy"),
context.Request.QueryString["t"].Trim().ToUpper()));
cell.Controls.Add(a);

a = new HtmlAnchor() { InnerText = ">>>", HRef = "#", Title = "ماه بعد" };
a.Style.Add("float", "left");
cell.Controls.Add(a);
a.Attributes.Add("onclick", String.Format("javascript:ShowTimeSelector('{0}','{1}','{2}','{3} ','{4}','{5}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
now.AddDays(30).ToString("MM/dd/yyyy"),
context.Request.QueryString["t"].Trim().ToUpper()));
a = new HtmlAnchor() { InnerText = ">>", HRef = "#", Title = "هفته بعد" };
a.Style.Add("float", "left");
cell.Controls.Add(a);
a.Attributes.Add("onclick", String.Format("javascript:ShowTimeSelector('{0}','{1}','{2}','{3} ','{4}','{5}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
now.AddDays(7).ToString("MM/dd/yyyy"),
context.Request.QueryString["t"].Trim().ToUpper()));
a = new HtmlAnchor() { InnerText = ">", HRef = "#", Title = "روز بعد" };
a.Style.Add("float", "left");
a.Attributes.Add("onclick", String.Format("javascript:ShowTimeSelector('{0}','{1}','{2}','{3} ','{4}','{5}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
now.AddDays(1).ToString("MM/dd/yyyy"),
context.Request.QueryString["t"].Trim().ToUpper()));
cell.Controls.Add(a);

ctrl = new HtmlGenericControl("span") { InnerText = NovinDiet.Utility.FormatDate(now, "fa-IR", 1) };
ctrl.Style.Add("float", "none");
cell.Controls.Add(ctrl);

row.Cells.Add(cell);
row.Attributes.Add("class", "tsch");
table.Rows.Add(row);

row = new HtmlTableRow();
row.Cells.Add(new HtmlTableCell());
row.Cells[0].Attributes.Add("class", "tsh tscr");
hourCounter = startHour;
for (int i = 0; i < hourColumns; i++)
{
cell = new HtmlTableCell() { ColSpan = 2, InnerText = (hourCounter++).ToString() };
cell.Attributes.Add("class", "tsh tscr");
row.Cells.Add(cell);
}
table.Rows.Add(row);


for (int i = 0; i < 60; i += 5)
{
row = new HtmlTableRow();
row.Cells.Add(new HtmlTableCell() { InnerText = i.ToString() });
row.Cells[0].Attributes.Add("class", "tsh tscr");
hourCounter = startHour;
for (int j = startHour; j <= endHour; j++)
{
IEnumerable<TimeList> temp = dbList.Where(d => d.Date.Hour == j && d.Date.Minute == i).AsParallel();
if (temp.Any())
{
List<TimeList> temp2 = temp.ToList();
//Int32 c = temp.Count();
if (temp2.Count == 1)
{
cell = new HtmlTableCell() { InnerText = String.Format("{0}:{1}", j, i) };
cell.Attributes.Add("class", "tsf");
row.Cells.Add(cell);
cell = new HtmlTableCell() { InnerText = String.Format("{0}:{1}", j, i) };
cell.Attributes.Add("class", "tscc");
cell.Attributes.Add("onclick", String.Format("javascript:SetTime('{0}','{1}','{2}','{3}','{4}',' {5}','{6}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
j, i, NovinDiet.Utility.FormatDate(now, "fa-IR", 2)));
row.Cells.Add(cell);
}
else
{
cell = new HtmlTableCell() { InnerText = String.Format("{0}:{1}", j, i) };
cell.Attributes.Add("class", "tsf");
row.Cells.Add(cell);
cell = new HtmlTableCell() { InnerText = String.Format("{0}:{1}", j, i) };
cell.Attributes.Add("class", "tsf");
row.Cells.Add(cell);
}
}
else
{
cell = new HtmlTableCell() { InnerText = String.Format("{0}:{1}", j, i) };
cell.Attributes.Add("class", i % 10 == 0 ? "tsccf" : "tscc");
cell.Attributes.Add("onclick", String.Format("javascript:SetTime('{0}','{1}','{2}','{3}','{4}',' {5}','{6}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
j, i, NovinDiet.Utility.FormatDate(now, "fa-IR", 2)));
row.Cells.Add(cell);
cell = new HtmlTableCell() { InnerText = String.Format("{0}:{1}", j, i) };
cell.Attributes.Add("class", "tscc");
cell.Attributes.Add("onclick", String.Format("javascript:SetTime('{0}','{1}','{2}','{3}','{4}',' {5}','{6}');",
context.Request.QueryString["c"].Trim(),
context.Request.QueryString["hs"].Trim(),
context.Request.QueryString["ms"].Trim(),
context.Request.QueryString["ds"].Trim(),
j, i, NovinDiet.Utility.FormatDate(now, "fa-IR", 2)));
row.Cells.Add(cell);
}
}
row.Attributes.Add("class", "tsrr");
table.Rows.Add(row);
}
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(context.Response.Outp ut);
table.RenderControl(tw);

خروجی هم به صورت زیر می شود:

http://up.iranblog.com/Files1/675167d14f8e4cec91fd.JPG