PDA

View Full Version : سوال: فعال کردن allow paging از طریق کد نویسی



reza4359
چهارشنبه 13 مهر 1390, 19:57 عصر
سلام دوستان من یک گریدویو رو از طریق کد نویسی به بانک متصل کردم و آیتمهای اونو بایند کردم حالا وقتی میخوام allow paging اونو فعال کنم نمیشه چون من از sqldatasource برای اتصال به بانک استفاده نکردم اجازه نمیده حالا باید چکار کنم ؟
ممنون

mahdioo12194
چهارشنبه 13 مهر 1390, 20:07 عصر
GridView3.AllowPaging = true;

vbnovin
چهارشنبه 13 مهر 1390, 20:13 عصر
با سلام به اينصورت :
فرض كنيم اين كد گريد شما باشه :

<TR>

<td align="center" style="height: 100px" valign="top">
<asp:TextBox ID="Txtok" runat="server" Font-Names="Tahoma" Font-Size="12px"
Width="32px" Visible="False">ok</asp:TextBox>

</td>

<td align="center" dir="rtl" style="width: 541px; height: 336px" valign="top">

<asp:GridView ID="dgShowNobat" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CaptionAlign="Top" CellPadding="4"
EnableTheming="True" EnableViewState="False"
ForeColor="#333333" GridLines="None" Width="504px" PageSize="8">
<PagerStyle BackColor="#284775" BorderStyle="None" BorderWidth="1px" Font-Size="13px"
ForeColor="White" Height="10px" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" />
<Columns>
<asp:BoundField DataField="Nameid" HeaderText="نام كاربري" />
<asp:BoundField DataField="name" HeaderText="نام" />
<asp:BoundField DataField="family" HeaderText="فاميلي" />
<asp:BoundField DataField="nobat" HeaderText="تاييد رزرو نوبت توسط بيمار" />
<asp:BoundField DataField="datevisit" HeaderText="تاريخ ويزيت" />
<asp:BoundField DataField="timevisit" HeaderText="زمان ويزيت" />
<asp:BoundField DataField="rozvisit" HeaderText="روز ويزيت" />
<asp:CommandField ButtonType="Image" EditImageUrl="Image/edit.gif" HeaderText="ويرايش"
ShowEditButton="True" />
<asp:CommandField ButtonType="Image" DeleteImageUrl="Image/delete.gif" HeaderText="حذف"
ShowDeleteButton="True" />
</Columns>
<RowStyle BackColor="#F7F6F3" Font-Names="Tahoma" Font-Size="12px" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" Font-Names="Arial Black" Font-Size="15px" ForeColor="White" />
<PagerSettings Mode="NumericFirstLast" PageButtonCount="8" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>

</TR>


حال برا قسمت كد نويسي مي نويسيم :


Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.Security


Partial Class Default2
Inherits System.Web.UI.Page

'روش اتصال اول
'Dim objConnection As New SqlConnection( _
'"Server=.\SQLEXPRESS;Database=Weblog;Integrated Security=True")

'روش اتصال دوم
Dim objConnection As New SqlConnection(ConfigurationManager.ConnectionStrin gs("objConnect").ConnectionString)


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub


Private Sub dgBind()


Dim DS As New DataSet()
Dim objDataAdapter As New SqlDataAdapter( _
"Select Nameid,name,family,nobat,datevisit,timevisit,rozvi sit From TbDarkhastNobat Where (nobat='" & Txtok.Text & "') Order By datevisit Desc", objConnection)

'objConnection.Open()
objDataAdapter.Fill(DS, "TbDarkhastNobat")
dgShowNobat.DataSource = DS.Tables("TbDarkhastNobat")
dgShowNobat.DataBind()
'objConnection.Close()



End Sub

reza4359
چهارشنبه 13 مهر 1390, 20:24 عصر
با سلام به اينصورت :
فرض كنيم اين كد گريد شما باشه :

<TR>

<td align="center" style="height: 100px" valign="top">
<asp:TextBox ID="Txtok" runat="server" Font-Names="Tahoma" Font-Size="12px"
Width="32px" Visible="False">ok</asp:TextBox>

</td>

<td align="center" dir="rtl" style="width: 541px; height: 336px" valign="top">

<asp:GridView ID="dgShowNobat" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CaptionAlign="Top" CellPadding="4"
EnableTheming="True" EnableViewState="False"
ForeColor="#333333" GridLines="None" Width="504px" PageSize="8">
<PagerStyle BackColor="#284775" BorderStyle="None" BorderWidth="1px" Font-Size="13px"
ForeColor="White" Height="10px" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" />
<Columns>
<asp:BoundField DataField="Nameid" HeaderText="نام كاربري" />
<asp:BoundField DataField="name" HeaderText="نام" />
<asp:BoundField DataField="family" HeaderText="فاميلي" />
<asp:BoundField DataField="nobat" HeaderText="تاييد رزرو نوبت توسط بيمار" />
<asp:BoundField DataField="datevisit" HeaderText="تاريخ ويزيت" />
<asp:BoundField DataField="timevisit" HeaderText="زمان ويزيت" />
<asp:BoundField DataField="rozvisit" HeaderText="روز ويزيت" />
<asp:CommandField ButtonType="Image" EditImageUrl="Image/edit.gif" HeaderText="ويرايش"
ShowEditButton="True" />
<asp:CommandField ButtonType="Image" DeleteImageUrl="Image/delete.gif" HeaderText="حذف"
ShowDeleteButton="True" />
</Columns>
<RowStyle BackColor="#F7F6F3" Font-Names="Tahoma" Font-Size="12px" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" Font-Names="Arial Black" Font-Size="15px" ForeColor="White" />
<PagerSettings Mode="NumericFirstLast" PageButtonCount="8" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>

</TR>


حال برا قسمت كد نويسي مي نويسيم :


Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.Security


Partial Class Default2
Inherits System.Web.UI.Page

'روش اتصال اول
'Dim objConnection As New SqlConnection( _
'"Server=.\SQLEXPRESS;Database=Weblog;Integrated Security=True")

'روش اتصال دوم
Dim objConnection As New SqlConnection(ConfigurationManager.ConnectionStrin gs("objConnect").ConnectionString)


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub


Private Sub dgBind()


Dim DS As New DataSet()
Dim objDataAdapter As New SqlDataAdapter( _
"Select Nameid,name,family,nobat,datevisit,timevisit,rozvi sit From TbDarkhastNobat Where (nobat='" & Txtok.Text & "') Order By datevisit Desc", objConnection)

'objConnection.Open()
objDataAdapter.Fill(DS, "TbDarkhastNobat")
dgShowNobat.DataSource = DS.Tables("TbDarkhastNobat")
dgShowNobat.DataBind()
'objConnection.Close()



End Sub
سلام دوست عزیز ممنونم از جوابتون ولی فکر کنم سوال منو خوب متوجه نشدید من با کدنویسی و روش اتصال گرید ویو به بانک مشکل ندارم
و این کارو کردم و فقط چون من روش اتصالم از طریق کد بوده و از wizard و کنترل sqldatasource استفاده نکردم نمیشه از طریق خاصیت AllowPaging = true گرید ویو paging اونو فعال کنم
حالا سوال من اینه که چطوری این کار رو انجام بدم؟

reza4359
پنج شنبه 14 مهر 1390, 01:39 صبح
دوستان لطفا راه حل این مشکل رو بگید
باید چکار کنم؟

Saman Hashemi
شنبه 16 مهر 1390, 08:10 صبح
کد گرید و اتصال قرار بده...!
احتمالا تعداد رکورد در هر صفحه ات بیشتر از اون تعدادی که از بانک انتخاب میکنی برای همین خاصیت فعال نمیشه...!

reza4359
شنبه 16 مهر 1390, 14:06 عصر
کد گرید و اتصال قرار بده...!
احتمالا تعداد رکورد در هر صفحه ات بیشتر از اون تعدادی که از بانک انتخاب میکنی برای همین خاصیت فعال نمیشه...!
نه سامان جان به این قضیه که شما گفتید ارتباطی نداره گفتم که من گرید ویو را با ویزارد به بانک ارتباط ندادم و با کدنویسی این اتصال رو برقرار کردم فکر کنم باید از طریق هندل کردن رویداد paging باید این کار رو انجام بدم ولی نمیدونم چطوری!!
حالا باید چکار کنم؟

Ali_M.Eghbaldar
شنبه 16 مهر 1390, 15:08 عصر
سلام :-)
وقتی از نوع اتصال ADO.NET استفاده می کنیم
نمی توانیم بصورت مستقیم از خاصیت Allow Paging استفاده کنید
یعنی این خاصیت ست میشه ولی وقتی مثلا از صفحه 1 به 2 می خواهیم برویم در همان صفحه 1 می ماند.
برای این منظور:
در روال PageINdexChanging کنترل Gridview خود کد زیر را اضافه می کنیم :

Gridview1.Datasource=دیتاست شما
Gridview1.PageIndex=e.NewPageIndex
Gridview1.DataBind()

reza4359
شنبه 16 مهر 1390, 20:20 عصر
سلام :-)
وقتی از نوع اتصال ADO.NET استفاده می کنیم
نمی توانیم بصورت مستقیم از خاصیت Allow Paging استفاده کنید
یعنی این خاصیت ست میشه ولی وقتی مثلا از صفحه 1 به 2 می خواهیم برویم در همان صفحه 1 می ماند.
برای این منظور:
در روال PageINdexChanging کنترل Gridview خود کد زیر را اضافه می کنیم :

Gridview1.Datasource=دیتاست شما
Gridview1.PageIndex=e.NewPageIndex
Gridview1.DataBind()
سلام دوست عزیز خیلی ممنون از لطفتون من این کد رو تو رویداد PageINdexChanging گذاشتم ولی حل نشد اگه میشه راهنمایی کنید
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString3"].ConnectionString);

string query = "select * from article ORDER BY id DESC";

SqlCommand cmd = new SqlCommand(query, con);

con.Open();

SqlDataReader dr = cmd.ExecuteReader();
GridView1.DataSource = dr;
GridView1.PageIndex = e.NewPageIndex;

GridView1.DataBind();
وقتی allow paging رو true میکنم این ارور رو میده
The data source does not support server-side data paging

Ali_M.Eghbaldar
شنبه 16 مهر 1390, 20:33 عصر
سلام :لبخندساده:

از Dataset استفاده کن , از ExecuteReader تو این روش استفاده نکردم تاحالا.

reza4359
شنبه 16 مهر 1390, 20:37 عصر
سلام :لبخندساده:

از Dataset استفاده کن , از ExecuteReader تو این روش استفاده نکردم تاحالا.
سلام ممنونم آره از dataset استفاده کردم حل شد. :لبخندساده: