PDA

View Full Version : سوال: Bind نشدن آخرین خانه از یک DataList



mrmohsen
یک شنبه 01 اسفند 1389, 00:53 صبح
با سلام خدمت تمام دوستان

من یک سری داده رو به DataList بایند کردم ولی آخرین خانه از یک DataList بعضی از فیلدهاش (مثلا اگه تو حالت Template طراحی کرده باشیم و 5 فیلد براش بایند کرده باشیم یکی از فیلداش ) بایند نمیشن؟ نمیدونم واقعا مشکل عجیبیه؟ دوستان اگه یه لطفی کنن این علامت سوال رو از بین ببرن ممنون میشم

A.S.Roma
یک شنبه 01 اسفند 1389, 14:06 عصر
دوست من ؛
شخصا" علم غیب ندارم و تا کدتون ( هر چند ساده باشه ) رو نبینم نمی تونم بهتون کمک کنم .

mrmohsen
یک شنبه 01 اسفند 1389, 23:12 عصر
دوست من ؛
شخصا" علم غیب ندارم و تا کدتون ( هر چند ساده باشه ) رو نبینم نمی تونم بهتون کمک کنم .

با سلام خدمت دوست عزیز
این لینک سایته http://www.azarbook.com یه نگاهی به آخرین خانه از DataList بنداز آخرین فیلد از هر صقحه بایند نمیشه اگه مشکل داره پس چرا همش بایند میشه جزء این یه دونه؟

اینم یه تکه از کد اون قسمت تخفیف


protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
foreach (DataListItem row in this.DataList1.Items)
{
Label lbldiscount = (Label)row.FindControl("lblprc");
Label lblprice = (Label)row.FindControl("lblprice");
Label lblprice0 = (Label)row.FindControl("lblprice0");
int dc = book.DiscountPrice(Int32.Parse(lblprice .Text.ToString()), Int32.Parse(lbldiscount.Text.ToString()));
lblprice0.Text = dc.ToString();
}

}

A.S.Roma
سه شنبه 03 اسفند 1389, 12:02 عصر
یک Counter داخل حلقه بذار ببین چند بار تکرار میشه !؟

mrmohsen
سه شنبه 03 اسفند 1389, 19:46 عصر
دوست عزیز مرسی از جوابت ولی جالبه که من تو هر صفحه 10 تا عنوان دارم که هر صفحه اش مثل صفحه اول فقط تو آخریش مشکل داره

A.S.Roma
چهارشنبه 04 اسفند 1389, 09:56 صبح
سلام مجدد ...
فکر کنم نیازی به اون foreach‌نباشه !
یکبار بدون حلقه تست کنید.

clover
چهارشنبه 04 اسفند 1389, 22:53 عصر
این اشتباهی هست که من هم مرتکب شدم
تابعی به این شکل را باید در هنگام PreRender فراخوانی کنید نه در ItemDataBound
تریس کنید تا متوجه تفاوت بشوید

mrmohsen
چهارشنبه 04 اسفند 1389, 23:00 عصر
دوست عزیز مرسی از پاسخت کاملا مفید فایده واقع شد


protected void Page_PreRender(object sender, EventArgs e)
{
DLBound();
}


و اون تابع



private void DLBound()
{
foreach (DataListItem row in this.DataList1.Items)
{
Label lbldiscount = (Label)row.FindControl("lblprc");
Label lblprice = (Label)row.FindControl("lblprice");
Label lblprice0 = (Label)row.FindControl("lblprice0");
int dc = book.DiscountPrice(Int32.Parse(lblprice.Text.ToStr ing()), Int32.Parse(lbldiscount.Text.ToString()));
lblprice0.Text = dc.ToString();
}
}

clover
چهارشنبه 04 اسفند 1389, 23:50 عصر
خواهش می کنم، البته منظور من OnPreRender کنترل DataList بود.
موفق باشید.