PDA

View Full Version : افزودن متد سمت سرور به لينك ماركويي



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 += "&nbsp;<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 اجرا بشه تا بدين ترتيب تعداد بازديدهاي اخبار افزايش پيدا كنه.اما چطور مي توان تابع سمت سرور را به اين صورت اجرا كرد.با تشكر

mehrdad201
چهارشنبه 08 دی 1389, 16:41 عصر
خب الان مشکل شما چیه ؟ یه رویداد روی کلیک لینک بنویسید ( یا با jquery یا با javascript و click event - هر طوری که دوست دارید هندل کنید) بعد تو رویداد کلیک یک تابع سرور ساید (وب متد) رو فراخوانی کنید.

HamidNch
پنج شنبه 09 دی 1389, 12:50 عصر
تابع من تو يه كلاس با نام DAL نوشته شده كه در صفحه مسترپيج صدا زده ميشه.من چطور به اين لينك رويداد كليك انتساب بدم ميشه يه مثال بزنين:

"<a style=\"text-decoration:none;color:white; text-align:right\" href=\"{0}\">{1}</a>"

كه وقتي روي اين لينك كليك شد علاوه بر اينكه صفحه موردنظر جهت نمايش اخبار ديده شد.تابع IncreaseViewCount كه در رويداد كلكيك مشخص شده نيز اجرا گردد.