PDA

View Full Version : ست کردن گرید ویو با sqldatasource ....



peymannaji
شنبه 30 تیر 1386, 20:49 عصر
سلام
این سوال ها رو پرسیدم چون بدون کد نویسی تمام این موارد بطور اوتوماتیک حل میشه ... اما مد نظر من کد نویسی هست . من یک sqldatasource ایجاد کردم و کانفیگورش کردم ... حالا یک گرید ویو در صفحه قرار میدم ... حالا میخوام بدونم چگونه و با چه کدی میتونم گرید ویو رو بایند کنم به Sqldatasource ؟

سوال بعدیم چگونه sort بر اساس یک فیلد خاص رو ایجاد کنم با کد نویسی ؟

سوال بعدیم و آخریش مشکل paging رو چگونه رفع کنم ؟

دوستان عزیز خیلی محبت میکنید بنده رو یاری کنید ... چون سر همین 3 مورد گیر کردم و واقعا" اوضاع بحرانی هست

Nightbat
یک شنبه 31 تیر 1386, 09:45 صبح
GridView.DataSource
GridView.SortExpression

peymannaji
یک شنبه 31 تیر 1386, 10:13 صبح
GridView.DataSource
GridView.SortExpression

سلام . در مورد مواردی که گفتید اطلاع دارم اما بفرض مثال GridView.DataSource باید برابر باشه با یک مقداری که من اون مقدار رو نمیدونم ...

در هر صورت من یکی از مشکلات رو که paging بود در دات نت 2 حل کردم به اینصورت :



protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gridView.PageIndex = e.NewPageIndex;
gridView.DataBind();
}




اما 2 مورد دیگه رو نمیدونم که امیدوارم با کمک شما عزیزان حل بشه ...

nazaninam
یک شنبه 31 تیر 1386, 10:28 صبح
دوستانی که جواب میدهند اگر از پاسخ خودشون اطمینان ندارند لطفا پاسخ ندهدند
پیمان جان شما باید از خاصیت DataSourceID کنترل Gridview استفاده کنی و آی دی SQL DataSource را بهش بدی.

Nightbat
یک شنبه 31 تیر 1386, 10:39 صبح
GridView.Sort(SortExpression,SortDirection)
SortExpression==> نام فیلدی که می خوای بر اساس آن سورت شه
SortDirection.Ascending/SortDirection.Descending ==> صعودی/نزولی

maxpayn2
یک شنبه 31 تیر 1386, 10:55 صبح
سلام
من از ObjectDataSource استفاده کردم و تمام کد رو هم دستی نوشتم ،‌که ضمیمه میکنم ، اگه دوست داشتی استفاده کن

peymannaji
یک شنبه 31 تیر 1386, 22:31 عصر
دوستانی که جواب میدهند اگر از پاسخ خودشون اطمینان ندارند لطفا پاسخ ندهدند
پیمان جان شما باید از خاصیت DataSourceID کنترل Gridview استفاده کنی و آی دی SQL DataSource را بهش بدی.


سلام دوست عزیز منظورتون این هست ؟




GridView1.DataSourceID = SqlDataSource1



اگه این باشه برای SqlDataSource1 یک خاصیت باید تعیین بشه که اینو نمیدونم میشه کمکم کنید ؟ ممنون

peymannaji
یک شنبه 31 تیر 1386, 22:51 عصر
GridView.Sort(SortExpression,SortDirection)SortExp ression==> نام فیلدی که می خوای بر اساس آن سورت شه
SortDirection.Ascending/SortDirection.Descending ==> صعودی/نزولی



دوست عزیز ممنون ...
اما من میخوام ب کلیک بروی هدر سورت بصورت اتوماتیک انجام بشه به اینصورت که اول که کلیک میکنم مثلا صعودی و دوباره کلیک میکنم نزولی سورت بشه و این برای هدر هر فیلدی امکان پذیر باشه چه راهی پیشنهاد میکنید ؟

Nightbat
دوشنبه 01 مرداد 1386, 09:21 صبح
دوست عزیز ممنون ...
اما من میخوام ب کلیک بروی هدر سورت بصورت اتوماتیک انجام بشه به اینصورت که اول که کلیک میکنم مثلا صعودی و دوباره کلیک میکنم نزولی سورت بشه و این برای هدر هر فیلدی امکان پذیر باشه چه راهی پیشنهاد میکنید ؟
ابتدا باید سورت گرید را فعال کنی

GridView1.AllowSorting = true;

بعد باید برای تک تک ستونهایی که می خواهی سورت شوند SortExpression تعریف کنی

GridView1.Columns[1].SortExpression = "SomeThing!";

peymannaji
دوشنبه 01 مرداد 1386, 16:55 عصر
nazaninam[/B];368941]سلام دوست عزیز منظورتون این هست ؟




GridView1.DataSourceID = SqlDataSource1

اگه این باشه برای SqlDataSource1 یک خاصیت باید تعیین بشه که اینو نمیدونم میشه کمکم کنید ؟ ممنون

منتظر جوابتون هستم ؟



ابتدا باید سورت گرید را فعال کنی

GridView1.AllowSorting = true;
بعد باید برای تک تک ستونهایی که می خواهی سورت شوند SortExpression تعریف کنی

GridView1.Columns[1].SortExpression = "SomeThing!";


ممنون دوست من فقط در کدام event‌باید نوشته بشه ؟

fereshte22
دوشنبه 01 مرداد 1386, 17:10 عصر
ببینید شما وقتی یک دیتاسورس ایجاد میکنید یک id دارد مثلا SqlDataSource1 حالا به این شکل از اون استفاده کنید
GridView1.DataSourceID = "SqlDataSource1"

peymannaji
دوشنبه 01 مرداد 1386, 18:05 عصر
ببینید شما وقتی یک دیتاسورس ایجاد میکنید یک id دارد مثلا SqlDataSource1 حالا به این شکل از اون استفاده کنید
GridView1.DataSourceID = "SqlDataSource1"

ممنون دوست عزیز تنها مشکلم فقط سوزت شدن هست که کدی که یکی از دوستان داده رو چک میکنم ببینم چه نتیجه ای داره ...

Nightbat
سه شنبه 02 مرداد 1386, 08:55 صبح
ممنون دوست من فقط در کدام event‌باید نوشته بشه ؟

می تونی تو Page_Load بنویسی.

peymannaji
پنج شنبه 04 مرداد 1386, 10:07 صبح
آقا این کد سورت هم جواب نداد حالا من نمیدونم کجاشو اشتباه کردم اما بی نتیجه بود . دوستان عزیز میشه راهنمایی کنین ؟

Nightbat
یک شنبه 07 مرداد 1386, 10:50 صبح
کد سورت درسته. کدت رو بذار ببینم کجاش مشکل داره.

peymannaji
دوشنبه 08 مرداد 1386, 09:25 صبح
کد سورت درسته. کدت رو بذار ببینم کجاش مشکل داره.




GridView1.Columns(4).SortExpression = SortDirection.Descending

اینو بنا به گفته شما تو فرم لود قرار دادم ام اتقافی نمیفته در ضمن من از یک سایتی به منظور سورت از کداش استفاده کردم ... اما باز هم هیج اتقافی نمیفته




Private Function convertSortDirectionToSql(ByVal SortDirection As SortDirection) As String

Dim newSortDirection As String = String.Empty

Select Case SortDirection
Case SortDirection.Ascending
newSortDirection = "ASC"
Exit Select
Case SortDirection.Descending
newSortDirection = "DESC"
Exit Select
End Select
Return newSortDirection
End Function





Protected Sub GridView1_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles GridView1.Sorting
Dim datatable As DataTable = TryCast(GridView1.DataSource, DataTable)
If datatable IsNot Nothing Then
Dim dataview As New DataView(datatable)
dataview.Sort = e.SortExpression + " " + convertSortDirectionToSql(e.SortDirection)
GridView1.DataSource = dataview
GridView1.DataBind()
End If
End Sub


مشکل کجاست ؟

Nightbat
سه شنبه 09 مرداد 1386, 09:51 صبح
مشکل این خطه :

GridView1.Columns(4).SortExpression = SortDirection.Descending

تو این خط به جای SortDirection باید نام فیلدی که میخوای بر اساس اون سورت بشه بنویسی

Nightbat
سه شنبه 09 مرداد 1386, 09:53 صبح
راستی ورژن .net که کار میکنی چیه ؟

peymannaji
سه شنبه 09 مرداد 1386, 19:51 عصر
من از دات نت 2 استفاده میکنم ...

Nightbat
چهارشنبه 10 مرداد 1386, 09:57 صبح
من از دات نت 2 استفاده میکنم ...
اگه از .net 2 استفاده می کنی این کدهای اضافه احتیاج نیست.همون کدهایی که گفتم کار می کنه

jk
یک شنبه 12 تیر 1390, 12:00 عصر
می تونی تو Page_Load بنویسی.

از page_load استفاده کردن روش درستیه ؟