HamidNch
چهارشنبه 08 دی 1389, 16:07 عصر
منتو صفحه مسترپيج يه بخش اخبار دارم كه بصورت ماركويي است.وبراي پر كردن اين بخش يه كلاس عمومي دارم با نام DAL كه داخل اون يه متد بصورت زير تعريف كردم:
public static String GetTopNews()
{
conn = new SqlConnection(GetConnectionString());
cmd = new SqlCommand("SP_News_GetTopNews", conn);
cmd.CommandType = CommandType.StoredProcedure;
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
String marquee, date, title, summary, path;
int id;
Boolean pooling;
marquee = "";
dr = cmd.ExecuteReader();
marquee = "<marquee onmouseover=\"this.stop()\" onmouseout=\"this.start()\" direction=\"up\" scrolldelay=\"1\" scrollamount=\"1\" style=\"width:99%;height:250px; padding: 0 1% 0 0;\">";
if (dr.HasRows)
{
while (dr.Read())
{
id = int.Parse(dr["News_ID"].ToString());
date = dr["News_Date"].ToString();
title = dr["News_Title"].ToString();
summary = dr["News_summary"].ToString();
pooling = Boolean.Parse(dr["News_Pooling"].ToString());
path = "NewsDisplay.aspx?newsId=" + id.ToString();
int len = title.Length;
if (len >= 31)
{
title = title.Substring(0, 30) + "...";
}
else
{
for (int i = len - 1; i <= 31; i++)
{
title = title + ".";
}
}
marquee += String.Format("<div style=\"direction: rtl\"> " +
"<ul>" +
"<li style=\"list-style:none; padding:0 5px 0 0;\">" +
"<img src=\"Images/legend/newspaper.png\" /> " +
"<a style=\"text-decoration:none;color:white; text-align:right\" href=\"{0}\">{1}</a>" +
"</li>" +
"</div>", path, title);
}
}
else
marquee += " <p> تاکنون اخبار جدیدی در سایت ثبت نشده است </p>";
marquee += "</marquee>";
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
return marquee;
}
حالا در قسمت كد HTML صفحه مسترپيج يه Div گذاشتم و داخل اون اين متد رو بصورت زير صدا زدم:
<div class="rightColumnNews">
<table border="0" cellpadding="1" cellspacing="1">
<thead>
<tr>
<td class="newsTop" align="center"> </td>
</tr>
</thead>
<tbody >
<tr>
<td align="center" class="news"
style="font-family:Tahoma; font-size: 8pt; color: Yellow; height: 306px;">
<%=DAL.GetTopNews() %>
</td>
</tr>
</tbody>
</table>
</div>
بدين ترتيب بدون هيچ مشكلي اخبارهاي موردنظرم تو اين ديو نمايش داده ميشوند.
تو متد GetTopNews قسمتي كه اين كد رو نوشتم:
<a style=\"text-decoration:none;color:white; text-align:right\" href=\"{0}\">{1}</a>
مي خوام يه رويداد كليك بنويسم كه وقتي روي اين لينك كليك شد يه تابع ديگر با نام IncreaseViewCount اجرا بشه تا بدين ترتيب تعداد بازديدهاي اخبار افزايش پيدا كنه.اما چطور مي توان تابع سمت سرور را به اين صورت اجرا كرد.با تشكر
public static String GetTopNews()
{
conn = new SqlConnection(GetConnectionString());
cmd = new SqlCommand("SP_News_GetTopNews", conn);
cmd.CommandType = CommandType.StoredProcedure;
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
String marquee, date, title, summary, path;
int id;
Boolean pooling;
marquee = "";
dr = cmd.ExecuteReader();
marquee = "<marquee onmouseover=\"this.stop()\" onmouseout=\"this.start()\" direction=\"up\" scrolldelay=\"1\" scrollamount=\"1\" style=\"width:99%;height:250px; padding: 0 1% 0 0;\">";
if (dr.HasRows)
{
while (dr.Read())
{
id = int.Parse(dr["News_ID"].ToString());
date = dr["News_Date"].ToString();
title = dr["News_Title"].ToString();
summary = dr["News_summary"].ToString();
pooling = Boolean.Parse(dr["News_Pooling"].ToString());
path = "NewsDisplay.aspx?newsId=" + id.ToString();
int len = title.Length;
if (len >= 31)
{
title = title.Substring(0, 30) + "...";
}
else
{
for (int i = len - 1; i <= 31; i++)
{
title = title + ".";
}
}
marquee += String.Format("<div style=\"direction: rtl\"> " +
"<ul>" +
"<li style=\"list-style:none; padding:0 5px 0 0;\">" +
"<img src=\"Images/legend/newspaper.png\" /> " +
"<a style=\"text-decoration:none;color:white; text-align:right\" href=\"{0}\">{1}</a>" +
"</li>" +
"</div>", path, title);
}
}
else
marquee += " <p> تاکنون اخبار جدیدی در سایت ثبت نشده است </p>";
marquee += "</marquee>";
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
return marquee;
}
حالا در قسمت كد HTML صفحه مسترپيج يه Div گذاشتم و داخل اون اين متد رو بصورت زير صدا زدم:
<div class="rightColumnNews">
<table border="0" cellpadding="1" cellspacing="1">
<thead>
<tr>
<td class="newsTop" align="center"> </td>
</tr>
</thead>
<tbody >
<tr>
<td align="center" class="news"
style="font-family:Tahoma; font-size: 8pt; color: Yellow; height: 306px;">
<%=DAL.GetTopNews() %>
</td>
</tr>
</tbody>
</table>
</div>
بدين ترتيب بدون هيچ مشكلي اخبارهاي موردنظرم تو اين ديو نمايش داده ميشوند.
تو متد GetTopNews قسمتي كه اين كد رو نوشتم:
<a style=\"text-decoration:none;color:white; text-align:right\" href=\"{0}\">{1}</a>
مي خوام يه رويداد كليك بنويسم كه وقتي روي اين لينك كليك شد يه تابع ديگر با نام IncreaseViewCount اجرا بشه تا بدين ترتيب تعداد بازديدهاي اخبار افزايش پيدا كنه.اما چطور مي توان تابع سمت سرور را به اين صورت اجرا كرد.با تشكر