View Full Version : سوال: ظاهر سبد خرید
sadegh.te
سه شنبه 28 مرداد 1393, 22:15 عصر
سلام بچه من یه سبد خرید طراحی کردم که عکسشو پایین میبینید ولی فقط ظاهرشه
122453
حالا یه سبد خرید دیگه هست که کامله ولی ظاهرش خوب نیست میخوام کداشو که با HTML gneric control نوشته شده بیارم بریزم تو این قالب بالا اگه میشه راهنمایی کنید که با چه روشی این کار رو انجام بدم ممنون میشم.
122455
amir_T_2008
سه شنبه 28 مرداد 1393, 23:50 عصر
دوست عزیز میشه یه نمونه قرار بدی چون اون دوستمون که یاد داد اما من نتونستم از دیتابیس فراخوانیش کنم
ممنون
aminmousavi
چهارشنبه 29 مرداد 1393, 07:33 صبح
سلام ، از دو راه میتونی استفاده کنی :
1- اگر دکمه (هرچیزی) سمت سرور میخوای داشته باشی توی سبد باید از HTML Genetic Control استفاده کنی
2 - اگر میخوای سمت سرور چیزی نداشته باشی با Littral میتونی استفاده کنی
یک مثال میزنم برات صادق جان ، که کانسپت دستت بیاد ، خود سبد رو نسبت به چیزی که میخوای طراحی کن :
فرض میخوام کد HTML زیر رو از CodeBehind رایت کنم توی HTML :
<div class="divmain">
<a href="home.aspx" class="a_main">لینک</a>
<img src="image1.jpg" title="test" />
</div>
روش 1 (HTML Genetic Control) : یک div یا هر کنترلی رو توی HTML رو یک ای دی میدی مثلا boxBasket و runat="server" قرار میدی ، توی CodeBehind به اینصورت مینویسی :
HtmlGenericControl DIV = new HtmlGenericControl("DIV");
DIV.Attributes.Add("class", "divmain");
HtmlAnchor A = new HtmlAnchor();
A.HRef = "home.aspx";
A.Attributes.Add("class", "a_main");
HtmlImage img = new HtmlImage();
img.Src = "image1.jpg";
img.Attributes.Add("title", "test");
DIV.Controls.Add(A);
DIV.Controls.Add(img);
boxBasket.Controls.Add(DIV);
روش 2 - (Literal) یک کنترل Literal اونجایی کی میخوای HTML رو رایت کنی بنداز ، بعد توی CodeBehind اینجوری بنویس :
string res = "";
res += "<div class=\"divmain\">";
res += " <a href=\"\" class=\"a_main\">لینک</a>";
res += " <img src=\"image1.jpg\" title=\"test\" />";
res += "</div>";
Literal1.Text = res;
sadegh.te
چهارشنبه 29 مرداد 1393, 09:59 صبح
دوست عزیز میشه یه نمونه قرار بدی چون اون دوستمون که یاد داد اما من نتونستم از دیتابیس فراخوانیش کنم
ممنون
باشه کامل که بشه حتما میزارم.
sadegh.te
چهارشنبه 29 مرداد 1393, 10:46 صبح
سلام امین این کدیه که خودت بهم دادی
{
if (Session["sabad"] != null)
{
boxSabad.Controls.Clear();
SabadKala sabad = ((SabadKala)Session["sabad"]);
Int64 total = 0;
for (int i = 0; i < sabad.CountKala; i++)
{
HtmlGenericControl DIV = new HtmlGenericControl("DIV");
HtmlGenericControl H3 = new HtmlGenericControl("H3");
HtmlGenericControl p = new HtmlGenericControl("p");
HtmlGenericControl DIVHR = new HtmlGenericControl("DIV");
Button btn = new Button();
Image ima = new Image();
H3.InnerText = sabad.Sabad.Rows[i][2].ToString();
p.InnerText = "قمیت : " + sabad.Sabad.Rows[i][3].ToString();
total += Convert.ToInt64(sabad.Sabad.Rows[i][3].ToString());
string im;
im = sabad.Sabad.Rows[i][4].ToString();
ima.ImageUrl = "/uploads/kala/" + im + ".jpg";
DIVHR.InnerHtml = "<hr/";
btn.ID = "btn" + i.ToString();
btn.Text = "حذف";
btn.Click += new EventHandler(btnRemoveKala_Click);
DIV.Controls.Add(H3);
DIV.Controls.Add(ima);
DIV.Controls.Add(btn);
DIV.Controls.Add(p);
DIV.Controls.Add(DIVHR);
boxSabad.Controls.Add(DIV);
}
LTotal.InnerText = total.ToString();
LCount.InnerText = sabad.CountKala.ToString();
}
اینم کد HTML سبد منه اگه میشه یه نمونه انجام بده که من ادامشو درست کنم ممنون میشم
<li class="orange"><a href="order_info.html"><i class="icons icon-basket-2"></i><p id="LCount" runat="server"></p></a>
<ul id="cart-dropdown" class="box-dropdown parent-arrow">
<li>
<div class="box-wrapper parent-border" dir="rtl">
<p>تعداد محصولات سبد (1)</p>
<table class="cart-table">
<tr>
<td><img src="img/products/sample1.jpg" alt="product"/></td>
<td>
<h6>
<div id="boxSabad" runat="server">
</div>
</h6>
<p>کد محصول: PSBJ3</p>
</td>
<td>
<span class="quantity"><span class="light">1 x</span> $79.00</span>
<a href="#" class="parent-color">حذف محصول</a>
</td>
</tr>
</table>
<br class="clearfix"/>
</div>
<div class="footer" dir="rtl">
<table class="checkout-table pull-right">
<tr>
<td class="align-right">قیمت:</td>
<td><p id="LTotal" runat="server"> </p></td>
<td>هزار تومان</td>
</tr>
<tr>
<td class="align-right">تخفیف:</td>
<td>37,000</td>
<td>هزار تومان</td>
</tr>
<tr>
<td class="align-right"><strong>Total:</strong></td>
<td><strong class="parent-color">$999.00</strong></td>
</tr>
</table>
</div>
<div class="box-wrapper no-border">
<a class="button pull-right parent-background" href="#">ثبت سفارش</a>
<a class="button pull-right" href="order_info.html">اطلاعات کامل</a>
</div>
</li>
</ul>
</li>
sadegh.te
چهارشنبه 29 مرداد 1393, 15:37 عصر
کسی نبود اینو جواب بده؟
aminmousavi
چهارشنبه 29 مرداد 1393, 18:15 عصر
مثلا تو <div class="box-wrapper parent-border" dir="rtl"> یک literal میندازی (به جای کل HTML) ، مثل مثالی که زدم یک متغییر رشته ای در نظر بگیر
string res="";
res=+"<p>تعداد محصولات سبد (1)</p>";
res=+"<table class=\"cart-table\">";
بعد یک حلقه میزاری برای تعداد رکورد هایی که توی سبدت هست توی بدنه For هربار html رو به res اضافه میکنی
<tr>
<td><img src="img/products/sample1.jpg" alt="product"/></td>
<td>
<h6>
<div id="boxSabad" runat="server">
</div>
</h6>
<p>کد محصول: PSBJ3</p>
</td>
<td>
<span class="quantity"><span class="light">1 x</span> $79.00</span>
<a href="#" class="parent-color">حذف محصول</a>
</td>
/tr>
بعد از For کد زیر رو هم به res اضافه میکنی :
</table>
<br class=\"clearfix\"/>
بعدش Litreal1.Text=res; قرار میدی
sadegh.te
چهارشنبه 29 مرداد 1393, 18:29 عصر
مثلا تو <div class="box-wrapper parent-border" dir="rtl"> یک literal میندازی (به جای کل HTML) ، مثل مثالی که زدم یک متغییر رشته ای در نظر بگیر
بعدش Litreal1.Text=res; قرار میدی
خوب مشکل من اینه که بلد نیستم این کارو انجام بدم یعنی تو مخم نمیره؟
aminmousavi
چهارشنبه 29 مرداد 1393, 18:38 عصر
html ات میشه این :
<li class="orange"><a href="order_info.html"><i class="icons icon-basket-2"></i><p id="P1" runat="server"></p></a>
<ul id="cart-dropdown" class="box-dropdown parent-arrow">
<li>
<div class="box-wrapper parent-border" dir="rtl">
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
<div class="footer" dir="rtl">
<table class="checkout-table pull-right">
<tr>
<td class="align-right">قیمت:</td>
<td><p id="LTotal" runat="server"> </p></td>
<td>هزار تومان</td>
</tr>
<tr>
<td class="align-right">تخفیف:</td>
<td>37,000</td>
<td>هزار تومان</td>
</tr>
<tr>
<td class="align-right"><strong>Total:</strong></td>
<td><strong class="parent-color">$999.00</strong></td>
</tr>
</table>
</div>
<div class="box-wrapper no-border">
<a class="button pull-right parent-background" href="#">ثبت سفارش</a>
<a class="button pull-right" href="order_info.html">اطلاعات کامل</a>
</div>
</li>
</ul>
</li>
کدهای html ای هم که قراره توی Litreal چاپ بشه هم همه رو جمع میکنی توی یک stirng بعد میگی Literal1.Text=res;
sadegh.te
پنج شنبه 30 مرداد 1393, 09:33 صبح
امین جان تو که لطف کردی اگه میشه بخش سی شارپشم بنویس خیلی ممنون :خجالت::خجالت:
sadegh.te
پنج شنبه 30 مرداد 1393, 16:01 عصر
امین خیلی مزاحم شدم ببخشید واقعا ولی این یه سوال بالارم جواب بده دستت درد نکنه
sadegh.te
جمعه 31 مرداد 1393, 09:50 صبح
کدهای html ای که قراره توی Litreal چاپ بشه چطوری میتونم با هم جمع کنم؟؟
aminmousavi
جمعه 31 مرداد 1393, 15:40 عصر
سلام ، یک نمونه توی پست 3 برات گذاشته بودم ، توی یک متغیر جمع میکنی
string res = "";
res += "<div class=\"divmain\">";
res += " <a href=\"\" class=\"a_main\">لینک</a>";
res += " <img src=\"image1.jpg\" title=\"test\" />";
res += "</div>";
Literal1.Text = res;
sadegh.te
جمعه 31 مرداد 1393, 16:09 عصر
یعنی الان من باید ایجوری کدمو بنویسم ببین درسته
string res = "";
res += "<div class=\"box-wrapper parent-border\">";
res += " <a href=\"\" class=\"a_main\">لینک</a>";
res += " <img src=\"/uploads/kala/" + im + ".jpg" />";
res += "</div>";
Literal1.Text = res;
aminmousavi
جمعه 31 مرداد 1393, 16:32 عصر
با html ای که دادی جور در نماید ، اینجوری میشه : count هم به ازاری کالای های توی سبد ت هست
string res = "<p>تعداد محصولات سبد (1)</p>";
res += " <table class=\"cart-table\">";
int count=3;
for (int i = 0; i < count; i++)
{
res += "<tr>";
res += " <td><img src=\"img/products/sample1.jpg\" alt=\"product\"/></td>";
res += " <td>";
res += " <h6> ";
res += " <div> ";
res += " </div>";
res += " </h6>";
res += " <p>کد محصول: PSBJ3</p>";
res += " </td>";
res += " <td>";
res += " <span class=\"quantity\"><span class=\"light\">1 x</span> $79.00</span>";
res += " <a href=\"#\" class=\"parent-color\">حذف محصول</a>";
res += " </td>";
res += " </tr>";
}
res += "</table>";
res += "<br class=\"clearfix\"/>";
sadegh.te
جمعه 31 مرداد 1393, 19:31 عصر
امین این کدو برای نمایش عکس تو لیترال نوشتم
res += ima.ImageUrl = "/uploads/kala/" + im + ".jpg";
ولی چون لیترال رشته ایه فقط آدرس رشته عکسو بهم میده بنظرت برای نمایش عکس چیکار کنم ؟
aminmousavi
جمعه 31 مرداد 1393, 19:53 عصر
res += "<img src=\"/uploads/kala/" + im.ToString() + ".jpg\" />";
sadegh.te
جمعه 31 مرداد 1393, 19:59 عصر
امین با این روش کالای اول رو که انتخاب میکنم عکسش میاد ولی وقتی که کالای دوم رو انتخاب میکنم عکسش میاد رو هر دوتا کالا یعنی عکسای دو تا کالا یکی میشه؟
aminmousavi
جمعه 31 مرداد 1393, 20:04 عصر
خوب اگه html ات بهم میریزه مشکل تو طراحی HTML هست ، یا یک جا رو داری اشتباه میریزی تو Litrall ، اول html رو با tr ها مختلف تست کن اگه مثلا برای چند کالا مختلف مشکل نداشت بعد بیا سمت سرورش بکن
sadegh.te
جمعه 31 مرداد 1393, 20:37 عصر
تستش کردم مشکلش با لیترال فقط اینه که عکس آخرین کالایی رو که انتخاب میکنی برای تمام کالاها ی داخل سبد میزاره؟
aminmousavi
جمعه 31 مرداد 1393, 20:46 عصر
توی حلقه باید به ازای هر دوری که حلقه میزنه یکی از مقدار های رکورد تون رو اضافه کنی به متغییر res
مثلا اگه با dataset کار میکنی اون جاهایی که قرار متغیر باشه رو باید اینجوری بزازی
ds.Tables[0].Rows[i][1].toStirng()
sadegh.te
جمعه 31 مرداد 1393, 21:01 عصر
امین من این کار رو کردم
Literal1.ID = "Literal1" + i.ToString();
یعنی هر بار ID خود لیترال رو تغییر دادم ولی نشد.
ID متغیر res رو چطوری باید تغییر داد؟؟
sadegh.te
جمعه 31 مرداد 1393, 21:31 عصر
اینم یه عکس یه وقتی محصولات میدم تو سبد همشو مثل هم میشن
122552
sadegh.te
شنبه 01 شهریور 1393, 13:35 عصر
سلام امین سبد همه چیزش درست شد فقط الان مونده دکمه حذف کالاش نمیتونم بزارمش تو لیترال اینم سورسش
btn.ID = "btn" + i.ToString();
btn.Text = "حذف";
btn.Click += new EventHandler(btnRemoveKala_Click);
چیکارش کنم؟؟
sadegh.te
یک شنبه 02 شهریور 1393, 16:30 عصر
سلام
یک مثال میزنم برات صادق جان ، که کانسپت دستت بیاد ، خود سبد رو نسبت به چیزی که میخوای طراحی کن :
فرض میخوام کد HTML زیر رو از CodeBehind رایت کنم توی HTML :
<div class="divmain">
<a href="home.aspx" class="a_main">لینک</a>
<img src="image1.jpg" title="test" />
</div>
روش 1 (HTML Genetic Control) : یک div یا هر کنترلی رو توی HTML رو یک ای دی میدی مثلا boxBasket و runat="server" قرار میدی ، توی CodeBehind به اینصورت مینویسی :
HtmlGenericControl DIV = new HtmlGenericControl("DIV");
DIV.Attributes.Add("class", "divmain");
سلام امین از روش جنریک کنترل چطور میتونم این کد HTML رو پیاده سازی کنم؟؟
<ul id="cart-dropdown" class="box-dropdown parent-arrow">
<li>
<div class="box-wrapper parent-border" dir="rtl">
<p>تعداد محصولات سبد (1)</p>
<table class="cart-table">
<tr>
<td> </td>
</td>
</td>
</tr>
</table>
</div>
چطوری میشه جنریکش کرد اگه میشه همین کد رو مثال بزن؟:خجالت:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.