PDA

View Full Version : مشکل با گرید ویو و دستورات شرطی



baran_mehr
پنج شنبه 23 خرداد 1387, 17:52 عصر
سلام خدمت دوستان عزیز:قلب:
من یک گرید ویو دارم که بعد از یک عمل جستجو ان را پر میکنم.
در داخل یک Button نوشتم که اول گرید ویو را پر کنه و بعد اگر تعداد رکورد های گرید ویو بیشتر از 5 بود.به صفحه دیگه بره.
اما بعد از اجرا و زدن باتون گریدویو پر میشود اما شرط اجرا نمیشه و باید یک بار دیگه باتون را کلیک کنم تا شرط هم اجرا بشه.درواقع انگار نیاز به دوبار فشرده شدن باتون هست.
ممنون میشم کمک کنید.:متفکر:

raravaice
پنج شنبه 23 خرداد 1387, 17:59 عصر
یه جا یه مشکلی هست ! مسئله رو با اون پست قبلی که جواب دادم حل نکن. سورست رو بزار دوستان بررسی کنن تا مشکل پیدا بشه.

موفق باشید

baran_mehr
پنج شنبه 23 خرداد 1387, 22:37 عصر
سلام داداش گلم.
من دستور Select خودم رو درون شئ AccessDataSource قرار دادم و کد هم اینه:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If GridView1.Rows.Count >= 5 Then
Response.Redirect("master.aspx" & "?user=moder")
End If
End Subمن میتونم این کار رو با دستور انجام بدم یعنی کانکشن و غیره را با دستور ایجاد کنم . اما به دلیلی الان باید از روش بالا استفاده کنم

salehbagheri
پنج شنبه 23 خرداد 1387, 22:55 عصر
باباجون داخل Properties گرايد ويو راحت مي توني اينو تنظيم كني!
چرا كد مي نويسي؟
خصيصه PageSize را به هرمقداري كه مي خواي (خودت گفتي 5) تغيير بده.

hesam_a110
پنج شنبه 23 خرداد 1387, 23:01 عصر
درود بر شما
همان طور که دوستمون گفتند چرا از امکانات خود .Net استفاده نمی کنید خیلی راحتره
اول اینکه می توانید توی
خصيصه PageSize را به هرمقداري كه مي خواي (خودت گفتي 5) تغيير بده.
دوم اینکه با متد Page index change به صفحه بعد بروید و اطلاعات مربوط به page 2 را نمایش دهید
پیروز و نیک باشید

salehbagheri
پنج شنبه 23 خرداد 1387, 23:02 عصر
البته خوب سوال شما رو نفهميدم!
بقيه رديفها برن تو يه صفحه ديگه يا اينكه كاربر اتوماتيك بره به يه صفحه ديگه؟

براي اين كار بايد اول يك متغير تعريف كني كه تعداد ستون ها رو بشمره!
بعد كد زير يا همون كد خودت رو با كمي تغيير بنويسي

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

dim Var as int32= gridview1.rows.count

If var >= 5 Then
Response.Redirect("master.aspx" & "?user=moder")
End If
End Sub

البته يك كد قشنگتر بعدا برات مي زارم چون رو اين كد هم مطمئن نيستم.

miladr
جمعه 24 خرداد 1387, 01:54 صبح
فکر کنم شما پر کردن gridview رو تو load انجام میدی و اونجا شرط page.ispostback رو چک نمی کنید دستورات پر کردن grid رو بزارین تو یه شرط اینطوری


If Not Page.IsPostBack Then
your code
end if

baran_mehr
جمعه 24 خرداد 1387, 15:27 عصر
داداشای گلم hesam_a110 وsalehbagheri فکر کنم شما سوال منو خوب متوجه نشدین من کاری با خصوصیات گرید ویو ندارم.....چون گرید ویو من اصلا در صفحه دیده نمیشه برای اینکه مخفی هست.
miladr جونم من کد رو داخل باتون گذاشتم.
عزیز دلم salehbagheri جان این که فرقی نمیکنه اما به هر حال اون رو هم امتحان کردم فایده نداد.
فکر کنم باید یکم توضیح بدم.
من عمل select رو با شئ AccessDataSource انجام دادم و گرید ویو خودم رو به اون لینک دادم یعنی هر وقت صفحه عملی رو انجام بده و به طرف سرور بره نتیجه عمل جستجو داخل گرید ریخته میشه حتی برای این کار نیاز به هیچ کدی نیست....اما من میخوام بعد از ریختن یک شرط برسی بشه و برام دستورات داخل اون شرط مهم نیست فقط میخوام شرط حتما این باشه که اگر گرید ویو تعداد ستونهاش خالی نباشه یعنی حتما بالای یک باشه یا بالای پنج باشه.
شاد باشید.

miladr
جمعه 24 خرداد 1387, 15:31 عصر
می دونم کد رو داخل button گذاشتی اما کد چک کردن شرط رو نه کد پر کردن grid

farzad_vb62
جمعه 24 خرداد 1387, 16:32 عصر
به نظر من شما به جاي اينکه اطلاعات رو تو گريد پر کني بعد بياي تعداد رو چک کني بهتره نتيجه query خودتو با reader بريزي توي جدول يا هر چيزي بعد با rows.count مي توني تعداد رکوردهايي که شرط شما رو ارضا مي کنن بدوني.
علت اينکه شما مجبور به دوبار کليک هستين مي تونه تقدم و تاخر ايجاد شده در اجراي دستوارت توي يه postback باشه.

baran_mehr
جمعه 24 خرداد 1387, 21:05 عصر
سلام دوستان
دوست عزیز miladr جان من گفتم که حتی یک خط کد هم ننوشتم ....تا حالا توسط شئ به دیتابیس وصل شدی؟؟

baran_mehr
جمعه 24 خرداد 1387, 21:19 عصر
farzad_vb62 جان.
من بنا به دلایلی نمیخوام از کد برای ارتباط با دیتابیس استفاده کنم برای همین دارم از شئ استفاده میکنم،و این شئ reader رو پیدا نکردم اما میتونم با کد به این شئ وصل بشم.....اما مشکل من اینکه نمیخوام از کدنویسی دیتابیس استفاده کنم
ایا راهی نیست که این postback حل بشه و من از همون گریدویو استفاده کنم

miladr
جمعه 24 خرداد 1387, 22:11 عصر
منظورتون از شی sqldatasource هست؟!:متفکر:

baran_mehr
شنبه 25 خرداد 1387, 07:51 صبح
شئ sqldatasource نه اما چیزی شبیه به اون یعنی AccessDataSource .

baran_mehr
شنبه 25 خرداد 1387, 14:16 عصر
کسی از دوستا راه حلی به نظرش نمیاد؟؟؟
شاد باشید.

baran_mehr
یک شنبه 26 خرداد 1387, 07:09 صبح
دوستان من نیاز فوری به دونستن این شیوه دام.کسی نمیتونه کمکی کنه؟

miladr
یک شنبه 26 خرداد 1387, 13:01 عصر
به جای این

GridView1.Rows.Count >= 5 Then
از این استفاده کن

dim mygrid as gridview=ctype(me.findcontrol("gridview1"),gridview)
if mygrid .Rows.Count >= 5 Then

baran_mehr
یک شنبه 26 خرداد 1387, 22:38 عصر
سلام miladr جان.
miladr من این کد رو امتحان کردم ، اما بازم جواب نداد...به نظرت دیگه باید چی کار کنم.