PDA

View Full Version : تفاوت BoundColumn با ItemTemplate



adhami
سه شنبه 23 آبان 1385, 10:52 صبح
من درمورد موضوع مورد سوالم جستجو کردم ولی مطلبی پیدا نکردم
من تفاوت بین BoundColumn با itemtemplete را متوجه نمی شم در بعضی از کد نویسی اصلا از BoundColumn استفاده نشده و تنها از ItemTemplate استفاده کرده نمیشه از هر دو مورد با هم در طراحی دیتاگرید استفاده کرد ؟

pegasos
سه شنبه 23 آبان 1385, 14:15 عصر
با درود.


من تفاوت بین BoundColumn با itemtemplete را متوجه نمی شم

BoundColumn :
یک ستون بایند شده به دیتا بیس را در اختیار شما قرار می دهد.
در هر سطر یک فیلد منبع اطلاعاتی را در داخل جدول(DataGrid) با توجه به Style سلول مورد نظر ارائه(Render) می دهد.

TemplateColumn :
یک ستون پایه برای شما تهیه می کند.
شما در داخل آن می توانید از المنت های HTML و یا یک سرور کنترل و یا هر دوی اینها با هم استفاده کنید.
برای مثال : یک ستون که خود شامل یک جدول باشد که داخل جدول چندین سرور کنترل وجود داشته باشد.


نمیشه از هر دو مورد با هم در طراحی دیتاگرید استفاده کرد ؟

بله ، می شود از هر دو استفاده کرد.

به امید موفقیت.

adhami
سه شنبه 23 آبان 1385, 14:51 عصر
ممنون از توجهتون
در برخی از تاپیکها گفته شده که برای بایند اطلاعات به دیتاگرید هم از بایند دیتا در کدنویسی و هم از <%#> استفاده کرد.
در صورتی که وقتی از BoundColumn استفاده می کنیم به راحتی اطلاعات بایند می شود و احتیاجی به کد نویسی در قسمت html ندارد.
به نظر شما استفاده از کدام کنترل برای بایند کردن و اکشن گرفتن بروی اطلاعات مثل انتخاب بوسیله چک باکس و ... بهتر است ؟
ممنون

Behrouz_Rad
سه شنبه 23 آبان 1385, 15:37 عصر
BoundColumn تنها برای نمایش اطلاعات کاربرد داره!
TemplateColumn بیشترین انعطاف پذیری رو داره و مثلا برای چک باکسی که گفتی باید ازش استفاده کنی!
چون بیشتر از 4 ساله که به نوعی با شهری که در اون زندگی می کنی ارتباط دارم، پارتی بازی کمکت می کنم!D:

adhami
سه شنبه 23 آبان 1385, 15:53 عصر
سلام
دست شما درد نکنه (ای ول آقای راد )

adhami
یک شنبه 28 آبان 1385, 11:10 صبح
با سلام
من بیشتر تاپیکهای که درمورد دیتاگرید بوده رو مطالعه کرده ام (یک سوال داشتم )
من دیتاگریدی دارم که ستونهای اون رو با استفاده از BoundColumn درست کرده ام و یکی از ستونها هم چک باکس است که اگر چک باکس اون سطر تیک خورد اطلاعات اون سطر در بانک اطلاعاتی insert بشه.کدی که برای چک کردن هر چک باکس این است :
For Each DGItem As DataGridItem In data1.Items
Dim chkbox As CheckBox = DGItem.Cells(1).Controls(1)
If chkbox.Checked = True Then
دستورات insert
Next
ولی به خط DGItem.Cells(1).Controls(1 خطا می گیره
البته من می خوام با زدن یک کلید تمامی سطرهای مشخص شده وارد تیبل مربوطه شوند .

با تشکر

adhami
یک شنبه 12 آذر 1385, 14:40 عصر
با عرض معذرت
دست کم بگین راه رو دارم درست می رم یا نه ؟
( این نوع برنامه نویسی درسته یا نه ؟)
ممنون

pegasos
دوشنبه 13 آذر 1385, 16:27 عصر
با درود.

اگر توی سلول دیتا گرید با FindControl به دنبال کنترل مورد نظرت بگردی شاید بهتر به نتیجه برسی.
به وسیله watch می توانی داخل سلول دیتا گرید را در هنگام RunTime مشاهده کنی و اسم کنترل مورد نظرت و نحوه دسترسی به اون رو پیدا کنید.

به امید موفقیت.

adhami
چهارشنبه 15 آذر 1385, 13:07 عصر
اگر توی سلول دیتا گرید با FindControl به دنبال کنترل مورد نظرت بگردی شاید بهتر به نتیجه برسی.


با تشکراز توجه شما
می شه لطفا از FindControl در دیتاگرید یک مثال بزنید .

pegasos
شنبه 18 آذر 1385, 15:56 عصر
با درود.
اول عذر خواهی می کنم از اینکه دیر به سعال شما جواب می دم.



string CodeStr = "";

foreach(DataGridItem anItem in DataGridAdmin.Items)
{
int Code = Convert.ToInt32(DataGridAdmin.DataKeys[(int)anItem.ItemIndex]);
bool ChkOk = Convert.ToBoolean(((CheckBox)anItem.FindControl("ChkDSO")).Checked);
if (ChkOk == true)
{
CodeStr = CodeStr + ";" + Convert.ToString(Code);
}
}
CodeStr = CodeStr + ";";

if (CodeStr == ";")
{
//not any check box selected
}
return CodeStr;

اگه مشکل داشتی حتما کد برنامه ات رو بذار
زودتر به نتیجه می رسی.

به امید موفقیت.

adhami
سه شنبه 28 آذر 1385, 13:49 عصر
این فایل pdf است که برای راهنمایی یکی از دوستان که به صورت خصوصی پیغام داده بود می گذارم.
با تشکر