• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

گذاشتن تصویر در دیتا گرید با یه شرط !

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
سلام

می خوام اگه فیلدی از بانکم خالی نبود در دیتاگرید به جای اون یه عکس نشون داده بشه و اگه خالی بود هیچی ؟

ممنون میشم کمکم کنین !
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
مگه شما توی برنامت از دیتا گرید استفاده میکنی ؟؟؟؟
کس دیگه ای رو هم توی این انجمن این کار رومیکنه ؟؟؟؟
نکنید بابا آخرش مثل ایران خودرو باید بگید برنامه هاتون رو پس بیارن براتون درستشون کنید ها !
دیتاگرید واقعا چیز مزخرفیه سعی کنید به جر برای تست کردن ازش استفاده نکنید !
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
41
محل سکونت
نصف جهان
بنده فکر نمی کنم اصل استفاده از دیتا گرید مشکل داشته باشه حسین جان

به نظر بنده ، دیتاگریدی بده که از دیتا ست برای پر کردن اون استفاده شده باشه !! (یعنی دیتا ست خوب نیست !!!)
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
نه دیتا گرید مشکلش اینه که اولا خیلی خیلی بی حساب کتابه ، یعنی هرچی بهش رکورد بدی میخواد نشون بده و وای به حال برنامه ای که توش از دیتاگرید استفاده شده باشه و برنامه نویسش فکر روزی رو نکرده باشه که رکورد ها از 50 ، 60 تا بالا تر میرن ! و وای به حال روزی که این ها به 5000 و 6000 و 50000 و 600000 تا و همینطور بالا تر برسن ! نه از سرور چیزی میمونه نه از کلاینت !
از طرف دیگه دیتا گرید viewState خیلی مزخرفی داره ! بسیار بسیار سنگینه ! (که البته میدونم که میشه دیس ایبل اش کرد ولی معمولات نمیکنن )
در آخر هم یه استدلال به زبان ساده میگه اگه چیز خوبی بود ، تنها کنترلی نبو که توی دات نت 2 از صفحه روزگار حذف شده !
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
سلام
من چیکار کنم؟
خب از چی استفاده کنم ؟ مگه با کدنویسی برا فرا خوانی رکوردای موردنیاز و صفحه بندی اون این مشکل حل نمیشه ؟

به نظر بنده ، دیتاگریدی بده که از دیتا ست برای پر کردن اون استفاده شده باشه !! (یعنی دیتا ست خوب نیست !!!)
EndOfCsharp جان ، از چی استفاده کنم ؟

در آخر هم یه استدلال به زبان ساده میگه اگه چیز خوبی بود ، تنها کنترلی نبو که توی دات نت 2 از صفحه روزگار حذف شده !
حالا من چیکار کنم ؟ میخواستم بیام تو 2005 ، یعنی پروژه هائی که دیتاگرید دارن چی میشن ؟
برا نمایش کلی اطلاعات چیکار کنم ؟
دوستان ، ممنون میشم راهاتونو پیش پام بذارید ، تا لااقل راه زیادی نرفتم و امکان اصلاح راحتره ، راه درست برم !
بازم ممنون
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
41
محل سکونت
نصف جهان
دوست عزیز

چنانچه تعداد رکودهای شما از 50 تا بیشتر نمی شود از همان grid View استفاده کنید

در غیر این صورت بایستی به کد نویسی و استفاده از datareader و کنترلهلی repeater و .. این کار را انجام دهید.

البته با دیتا لیست هم قابل انجام است

شما بایستی هنگام بایند شدن هر آیتم در دیتالیست (و یا repeatre و ...) ، از event مربوطه استفاده کنید و چک کنید که اگر اطلاعات آن آیتم خالی بود ، آن چه که مورد نظرتان است را بایند کنید.

ان شا ا.. اگر برسم همین 2 ، 3 روزه کد را برایتان خواهم گذاشت
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
سلام

ممنون دوست عزیز

ان شا ا.. اگر برسم همین 2 ، 3 روزه کد را برایتان خواهم گذاشت
خیلی دوست دارم کدتونو ببینم
بازم ممنون
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,601
لایک‌ها
49
محل سکونت
Anywhere
خوب مایکروسافت که علکی این ابزار هارو درست نکرده :D باید کاستمایز بشن
قبلنا یه مقاله دیده بودم
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
به نقل از H_R :
نه دیتا گرید مشکلش اینه که اولا خیلی خیلی بی حساب کتابه ، یعنی هرچی بهش رکورد بدی میخواد نشون بده و وای به حال برنامه ای که توش از دیتاگرید استفاده شده باشه و برنامه نویسش فکر روزی رو نکرده باشه که رکورد ها از 50 ، 60 تا بالا تر میرن ! و وای به حال روزی که این ها به 5000 و 6000 و 50000 و 600000 تا و همینطور بالا تر برسن ! نه از سرور چیزی میمونه نه از کلاینت !
از طرف دیگه دیتا گرید viewState خیلی مزخرفی داره ! بسیار بسیار سنگینه ! (که البته میدونم که میشه دیس ایبل اش کرد ولی معمولات نمیکنن )
در آخر هم یه استدلال به زبان ساده میگه اگه چیز خوبی بود ، تنها کنترلی نبو که توی دات نت 2 از صفحه روزگار حذف شده !
آقا این که میگی "تنها کنترلی که توی دات نت 2 از صفحه روزگار حذف شده" برای من یه سوال پیش آورده.

من تا حالا فکر میکردم این کنترل gridview که توی دات نت 2 هست همون دیتاگریده که اسمش عوض شده! حالا قضیه چیه؟!!
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
به نقل از mehdvirus :
خوب مایکروسافت که علکی این ابزار هارو درست نکرده :D باید کاستمایز بشن
قبلنا یه مقاله دیده بودم


سلام
جناب مدیر دبستان ، شما هم !!! :)
(علکی نهو الکی !)

باید کاستمایز بشن
قبلنا یه مقاله دیده بودم

آقا مهدی ، دلمو آب نکنین ، خب بیشتر توضیح بدین ، اون مقاله رو پیداش کنین دیگه! :eek:
ممنون میشم از هر کمکی !
راستی ، اصلا سوال یه چیز دیگه بود ، هر کی میدونه لطف کنه راهنمائی کنه !
ممنون
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
به نقل از winter :
آقا این که میگی "تنها کنترلی که توی دات نت 2 از صفحه روزگار حذف شده" برای من یه سوال پیش آورده.

من تا حالا فکر میکردم این کنترل gridview که توی دات نت 2 هست همون دیتاگریده که اسمش عوض شده! حالا قضیه چیه؟!!

سلام

برا منم سواله ؟
حسین آقا کجائی ؟
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
سلام دوستان

دوستان من تجربه زیادی ندارم برا همین از همه تون میخوام لطف کنین رو کدم نظر بدین !
از هر گونه اظهار نظر و اصلاحی هم خوشحال میشم !:)
میخوام بدونم این راهو ول کنم برم سراغ ریپیتر یا اینکه مشکلمو حل میکنه ؟
در ضمن ViewState رو هم False کردم !

کد:
  Dim starti, endi As Integer
    Dim strselect As String
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Cnn.Open()
        Dim sqlstr As String = "SELECT Count(*) FROM Tbl"
        Dim cmdselect As SqlCommand = New SqlCommand(sqlstr, Cnn)
        Me.DataGrid1.VirtualItemCount = cmdselect.ExecuteScalar / DataGrid1.PageSize
        Cnn.Close()
        BindGrid()
End Sub
    Sub BindGrid()
        Dim dad As SqlDataAdapter
        Dim ds As DataSet
        endi = starti + DataGrid1.PageSize
        strselect = "SELECT * FROM Tbl WHERE Radif>@starti AND Radif<=@endi ORDER BY Radif"
        dad = New SqlDataAdapter(strselect, cnn)
        dad.SelectCommand.Parameters.Add("@starti", starti)
        dad.SelectCommand.Parameters.Add("@endi", endi)
        ds = New DataSet
        dad.Fill(ds)
        Me.DataGrid1.DataSource = ds
        Me.DataGrid1.DataBind()
    End Sub
    Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
        starti = e.NewPageIndex * DataGrid1.PageSize
        DataGrid1.CurrentPageIndex = e.NewPageIndex
        BindGrid()
    End Sub
با تشکر
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
به نقل از EndOfCsharp :
دوست عزیز

چنانچه تعداد رکودهای شما از 50 تا بیشتر نمی شود از همان grid View استفاده کنید

در غیر این صورت بایستی به کد نویسی و استفاده از datareader و کنترلهلی repeater و .. این کار را انجام دهید.

البته با دیتا لیست هم قابل انجام است

شما بایستی هنگام بایند شدن هر آیتم در دیتالیست (و یا repeatre و ...) ، از event مربوطه استفاده کنید و چک کنید که اگر اطلاعات آن آیتم خالی بود ، آن چه که مورد نظرتان است را بایند کنید.

ان شا ا.. اگر برسم همین 2 ، 3 روزه کد را برایتان خواهم گذاشت


سلام

دوست من ، من همچنان منتظرم !!! :( :( :(

دوستان خواهشا کمک کنین !

با تشکر
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
ببنید این یعنی دشمنی مستقیم با سرور !
که شما یه دستور سلکت بنوسید و توش معلوم نکنید که از کجا تا کجا رو براتون برگزدونه ، حالا از ه کنترلی میخواین استفاده کنه وقتی که شما اینطوری صفحه بندی میکنید هربار تمام اطلاعات از اول تا آخر از بانک اطلاعاتی به سرور منتقل میشه و میره توی دیتاستحالا شما 10 تاش رو نشون میدی ! درستش اینه که فقط 10 تا رکورد رو بگیری اگه میخوای 10 تاش رو نشون بدی مشکلش هم با یک orderd by و where و داشتن آخرین آیدی که توی هر صفحه اومده و top 10 (مثلا)حل میشه .
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
به نقل از H_R :
ببنید این یعنی دشمنی مستقیم با سرور !
که شما یه دستور سلکت بنوسید و توش معلوم نکنید که از کجا تا کجا رو براتون برگزدونه ، حالا از ه کنترلی میخواین استفاده کنه وقتی که شما اینطوری صفحه بندی میکنید هربار تمام اطلاعات از اول تا آخر از بانک اطلاعاتی به سرور منتقل میشه و میره توی دیتاستحالا شما 10 تاش رو نشون میدی ! درستش اینه که فقط 10 تا رکورد رو بگیری اگه میخوای 10 تاش رو نشون بدی مشکلش هم با یک orderd by و where و داشتن آخرین آیدی که توی هر صفحه اومده و top 10 (مثلا)حل میشه .



سلام

حسین آقا ، من نفهمیدم شما چی گفتین !:wacko:
خیر سرم که اومدم همین کارو کردم !
دیتاست رو هم وقتی پر کردم که معلوم شده چه رکودائی رو میخوام و رکورد اضافه نیارم !!!
اصلا حسین آقا ، من خیلی دیر میگیرم ، میشه کد رو اصلاح کنین
یا یه نمونه بذارید
با دیتاگرید یا ریپیتر ، فرقی نمیکنه :(
فقط یه جور بگید که منم بفهمم !!! :wacko:

ممنون
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
سلام

EndOfCsharp جان کجائی شما ؟؟؟
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
سلام

چرا کسی جواب منو نمی ده ؟؟؟
 

yavari

کاربر تازه وارد
تاریخ عضویت
17 ژوئن 2006
نوشته‌ها
167
لایک‌ها
0
سلام

یکی یهم کمک کنه ، باور کنید راه دوری نمیره !

ممنون
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
ببین برای دیتاستت یه لوپ میذاری به تعداد ردیف ها میشمری بعد توی هر ردیف اگه اون خونه ای که میخواستی مقدارش یه جور دیگه بود به هرچیزی که میخوای عوض میکنی

[][] Rows که اولی شماره ردیف له دومی شماره ستون ، توی vb باید پرانتز بذای درضمن به جای [].
 
بالا