PDA

View Full Version : نمایش خلاصه مطالب به صورت کشوئی



sara_aryanfar
یک شنبه 20 آذر 1390, 11:56 صبح
با سلام می خواستم بدونم چطوری می تونم مطالب رو مثل عکس نشون بدم یعنی با کلیک رو عنوان مطلب باز و بقیه همه بسته میشن ؟
79035
http://barnamenevis.org/images/misc/pencil.png

Saber Mogaddas
یک شنبه 20 آذر 1390, 12:11 عصر
سلام
می تونی از پلاگین Accordion خود Jquery استفاده کنی..از این (http://jqueryui.com/demos/accordion/) لینک..

sara_aryanfar
یک شنبه 20 آذر 1390, 14:42 عصر
چطوری میشه اینو به دیتا بیس وصل کرد که 4 رکورد آخر رو نشون بده فقط تو اون بخش تکرار برام مبهمه ؟

hamid_shrk
یک شنبه 20 آذر 1390, 14:46 عصر
میتونید واسه هر کدوم از label استفاده کنید ، چون تعداد خبر هایی که میخواید استفاده کنید محدوده راحتت تره که label بزارید و بهشون Id بدید،اونوقت تو کدتون از دیتابیس بخونید.
ظاهرا با asp کار میکنید پس اینکار بهتر از repeater هست واستون

sara_aryanfar
یک شنبه 20 آذر 1390, 14:55 عصر
تو ریپورتر وقتی یدونه مثلا لیبل میزاری و وصل می کنی به دیتا بیس خودش به تعداد داده که خوندی نشون میده حالا من اینجا چطوری باید اینکارو بکنم

hamid_shrk
یک شنبه 20 آذر 1390, 15:04 عصر
بدون ریپیتر هم میتونید این کار رو بکنید ،4 تا لیبل واسه عنوان خبر ، 4 تا واسه متن خبر و 4 واسه ادامه خبر ، بعد 4 تاخبر آخرو بخونید بزارید تو لیبل ها.
تو ریپیتر یک ویژگی به اسم page size داشت که اگه اونو میزاشتید رو 4 فقط 4 تای آخرو میخوند.

sara_aryanfar
یک شنبه 20 آذر 1390, 15:11 عصر
میشه یه نمونه کد بزارید که چطور چهار خبر آخر رو بزارم تو این لیبل های خودم ممنون میشم

hamid_shrk
یک شنبه 20 آذر 1390, 15:37 عصر
با توجه به جی کوئری بالا :

<div id="accordion">
<h3>
<a href="#" runat="server" id="newsTitle1">newsTitle1</a></h3>
<div>
<p>
<table class="style1">
<tr>
<td>
<asp:Image ID="NewsImage1" runat="server" />
</td>
<td>
<asp:Label ID="NewsText1" runat="server" Text="Label"></asp:Label></td>
</tr>
</table>
</p>

</div>
<h3>
<a href="#" runat="server" id="newsTitle2">newsTitle2</a></h3>
<div>
<p>
<table class="style1">
<tr>
<td>
<asp:Image ID="NewsImage2" runat="server" />
</td>
<td>
<asp:Label ID="NewsText2" runat="server" Text="Label"></asp:Label></td>
</tr>
</table>
</p>
</div>
<h3>
<a href="#" runat="server" id="newsTitle3">newsTitle3</a></h3>
<div>
<p>
<table class="style1">
<tr>
<td>
<asp:Image ID="NewsImage3" runat="server" />
</td>
<td>
<asp:Label ID="NewsText3" runat="server" Text="Label"></asp:Label></td>
</tr>
</table>
</p>

</div>
<h3>
<a href="#" runat="server" id="newsTitle4">newsTitle4</a></h3>
<div>
<p>
<table class="style1">
<tr>
<td>
<asp:Image ID="NewsImage4" runat="server" />
</td>
<td>
<asp:Label ID="NewsText4" runat="server" Text="Label"></asp:Label></td>
</tr>
</table>
</p>

</div>
</div>

البته میتونید با div پیاده سازیش کنید.
حالا با توجه به روش واکشی اطلاعاتتون سمت سرور تو پیج لود این متغیر ها رو(newsTitle1،NewsImage1،NewsText1 و ...)مقدار بدید.

sara_aryanfar
یک شنبه 20 آذر 1390, 18:39 عصر
ممنون خب الان شاید بتونم مشکلم رو واضح تر بگم ببینید من چطوری باید به طور همزمان در سمت سرور به 12 کنترل خودم مقدار بدم در واق تو اونجاش موندم خوندن یک مقدار رو بلدم اما 12 همزمان رو نه؟

hamid_shrk
دوشنبه 21 آذر 1390, 08:24 صبح
معماریتون چیه؟ 3لا یه کار میکنید؟
کاری نداره تو sql یک لیست از 4 خبر آخرتون رو میخونید و تو ASP اونها رو مقدار میدید.

sara_aryanfar
دوشنبه 21 آذر 1390, 11:32 صبح
خب شما یه مثال از نحوه مقدار دادن بگید چون تو همون مقدار دادن به لیبل هام موندم چون یه سطر رو که نمی خوام مقدار بدم مثلا 5 سطر می خونم و حالا اگه جدولم 3 فیلد داشته باشه باید اونو تو 15 لیبل بزارم فکر کنم میشه یکمی برام با مثال توضیح بدین ممنون

hamid_shrk
دوشنبه 21 آذر 1390, 11:40 صبح
List<News_BO> NItem_BO = News_BA.getListNewsForShow();

//Get first news from news table
NewsTitle1.InnerText = NItem_BO[0].Title;
NewsTitle1.HRef = "news/" + NItem_BO[0].IdNewsCategoryFK+"/"+NItem_BO[0].IdNews;
//NewsCountinue1.HRef = "news/" + NItem_BO[0].IdNewsCategoryFK + "/" + NItem_BO[0].IdNews;
NewsText1.InnerText = NItem_BO[0].Short_Des;

//------------------------------
//Get second news from news table
NewsTitle2.InnerText = NItem_BO[1].Title;
NewsTitle2.HRef = "news/" + NItem_BO[1].IdNewsCategoryFK + "/" + NItem_BO[1].IdNews;
//NewsCountinue2.HRef = "news/" + NItem_BO[1].IdNewsCategoryFK + "/" + NItem_BO[1].IdNews;
NewsText2.InnerText = NItem_BO[1].Short_Des;

//------------------------------
//Get Third news from news table
NewsTitle3.InnerText = NItem_BO[2].Title;
NewsDate3.InnerText = Persia.Calendar.ConvertToPersian(NItem_BO[2].Time).Simple;
NewsTitle3.HRef = "news/" + NItem_BO[2].IdNewsCategoryFK + "/" + NItem_BO[2].IdNews;
Newsli3.Visible = true;

//------------------------------
//Get Fourth news from news table
NewsTitle4.InnerText = NItem_BO[3].Title;
NewsDate4.InnerText = Persia.Calendar.ConvertToPersian(NItem_BO[3].Time).Simple;
NewsTitle4.HRef = "news/" + NItem_BO[3].IdNewsCategoryFK + "/" + NItem_BO[3].IdNews;
Newsli4.Visible = true;

//------------------------------
//Get Fifth news from news table
NewsTitle5.InnerText = NItem_BO[4].Title;
NewsDate5.InnerText = Persia.Calendar.ConvertToPersian(NItem_BO[4].Time).Simple;
NewsTitle5.HRef = "news/" + NItem_BO[4].IdNewsCategoryFK + "/" + NItem_BO[4].IdNews;
Newsli5.Visible = true;


News_BO
نام کلاس منه تو لایه دیتا اکسس اطلاعات ر از استور پروسیجر میخونم ، اینطوری :

public static List<News_BO> getListNews()
{
SqlConnection SqlCN = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ToString());
SqlCommand sqlcmd = new SqlCommand("sp_News_getListNews", sqlcn);
sqlcmd.CommandType = CommandType.StoredProcedure;
List<News_BO> item = new List<News_BO>();
//
sqlcmd.Parameters.Clear();

SqlDataAdapter SqlDA = new SqlDataAdapter(sqlcmd);
DataTable SqlDT = new DataTable();
SqlDA.Fill(SqlDT);
//

try
{
sqlcn.Open();
if (SqlDT.Rows.Count > 0)
{
foreach (DataRow dr in SqlDT.Rows)// (int i = 0; i < SqlDT.Rows.Count; i++)
{

item.Add(new News_BO(
dr["idNews"],
dr["idOperatorFK"],
dr["IdNewsCategoryFK"],
dr["Title"],
dr["ShortDes"],
dr["Text"],
dr["Time"],
dr["Flag"]

));
}

}

}
catch (Exception e)
{
throw new System.Exception("Error Reading News ." + e.Message);
}
finally
{
sqlcn.Close();
sqlcn.Dispose();
sqlcn = null;
sqlcmd = null;
}
return (item);

}

امیدوارم به درتون بخوره.