PDA

View Full Version : paging در gridView



nafarinesh
جمعه 06 مرداد 1391, 22:42 عصر
سلام
من وقتی روی صفحه بعدی می زنم.
هیچ تغییری نمیکنه. همان صفحه اول رو نشون میده.

از dataset استفاده کردم.

به راهمنمایی احتیاج دارم.

speralda
جمعه 06 مرداد 1391, 23:09 عصر
درود
شما page size رو هم تغییر دادید؟شاید اطلاعات شما فقط به اندازه page اول است.

fakhravari
شنبه 07 مرداد 1391, 00:13 صبح
چون به صورت دستی بایند میکنید باید دوباره بایند کنید.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Topik k = new Topik();
GridView1.DataSource = k.All_Topik_Forum_ID(id);
GridView1.DataBind();
}

}


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

alonemm
شنبه 07 مرداد 1391, 10:05 صبح
باسلام:

برای پیاده سازی صحیح صفحه بندی در کنترل گرید به لینک آموزشی زیر مراجعه کنید:

آموزش پیاده سازی Custom Paging در GridView با تکنولوژی Ajax (http://barnamenevis.org/showthread.php?322558-آموزش-پیاده-سازی-Custom-Paging-در-GridView-با-تکنولوژی-Ajax)

nafarinesh
شنبه 07 مرداد 1391, 10:28 صبح
چون به صورت دستی بایند میکنید باید دوباره بایند کنید.
1
2
3
4
5
6
7
8
9
10
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Topik k = new Topik();
GridView1.DataSource = k.All_Topik_Forum_ID(id);
GridView1.DataBind();
}

}






1
2
3
4
5
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}



من این کارو می کنم. ولی grid ناپدید میشه!!!!!!!!!!!!!!!!!!!!!!:متعجب:

nafarinesh
شنبه 07 مرداد 1391, 10:30 صبح
آقای fakhravari (http://barnamenevis.org/member.php?128926-fakhravari) با راه حلی که شما گفتید. من این کارو می کنم. ولی grid ناپدید میشه!!!!!!!!!!!!!!!!!!!!!!:متعجب:

fakhravari
شنبه 07 مرداد 1391, 12:48 عصر
کداتون بزارید.

nafarinesh
شنبه 07 مرداد 1391, 13:26 عصر
stotred procedure:


public System.Data.DataSet Get_List(String whereClause)
{
System.Data.DataSet myDataSet = new System.Data.DataSet();
using (SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationMa nager.ConnectionStrings["SelfService"].ConnectionString))
{
SqlCommand command = new SqlCommand("SP_SubOrder_Get_List", connection);
command.CommandType = System.Data.CommandType.StoredProcedure;
//--input parameter
command.Parameters.Add(new SqlParameter("@WhereClause", whereClause));
if (connection.State != System.Data.ConnectionState.Open)
{
connection.Open();
}
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(command);
mySqlDataAdapter.Fill(myDataSet, "Tb_SubOrder");
if (connection.State != System.Data.ConnectionState.Closed)
{
connection.Close();
command.Dispose();
}

}
return myDataSet;
}

Grid


<asp:GridView ID="grdSaturday" runat="server" AutoGenerateColumns="False"
CellPadding="2" ForeColor="#333333" AllowPaging="True" PageSize="2" Width="100%"
OnRowCommand="grdSaturday_RowCommand"
OnPageIndexChanging="grdSaturday_PageIndexChanging" Height="108px"
CellSpacing="1">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="SubOrderId" HeaderText="#" ItemStyle-Width="10px" Visible="false" />
<asp:TemplateField HeaderText="غذا">
<ItemTemplate>
<%# Self.BaseData.GetTitle.FoodType(Convert.ToByte(Eva l("FoodTypeId").ToString())) + " (" + Eval("FoodTitle").ToString()+")"%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FoodQty" HeaderText="تعداد" />
<asp:TemplateField HeaderText="قيمت به ريال">
<ItemTemplate>
<%# Eval("SumPrice").ToString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="" ShowHeader="False" ItemStyle-Width="10px">
<ItemTemplate>
<asp:ImageButton ID="lnkModify" runat="server" CommandName="cmdModify" ToolTip="ويرايش"
CommandArgument='<%# Eval("SubOrderId") %>' ImageUrl="~/Images/Write16.png" CausesValidation="False" />
<br />
<asp:ImageButton ID="lnkDelete" runat="server" CommandName="cmdDelete" ToolTip="حذف"
CommandArgument='<%# Eval("SubOrderId") %>' OnClientClick="return confirm('آيا مطمئن هستيد؟')"
CausesValidation="False" ImageUrl="~/Images/Delete16.png" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#990033" />
<FooterStyle BackColor="#990033" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990033" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#990033" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>

bind کردن گرید


private void Get_grdSaturday(Int64 userId, Byte mealId, String mealDate)
{

Class.SubOrder mySubOrder = new Class.SubOrder();
grdSaturday.DataSource = mySubOrder.Get_List("(Tb_Order.OrderId IN (SELECT OrderId FROM Tb_Order WHERE (UserId = " + userId.ToString() + ")AND(MealId = " + mealId.ToString() + ")AND (MealDate = '" + mealDate + "')))");
grdSaturday.DataBind();
}

و



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

nafarinesh
شنبه 07 مرداد 1391, 13:32 عصر
public System.Data.DataSet Get_List(String whereClause)
{
System.Data.DataSet myDataSet = new System.Data.DataSet();
using (SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationMa nager.ConnectionStrings["SelfService"].ConnectionString))
{
SqlCommand command = new SqlCommand("SP_SubOrder_Get_List", connection);
command.CommandType = System.Data.CommandType.StoredProcedure;
//--input parameter
command.Parameters.Add(new SqlParameter("@WhereClause", whereClause));
if (connection.State != System.Data.ConnectionState.Open)
{
connection.Open();
}
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(command);
mySqlDataAdapter.Fill(myDataSet, "Tb_SubOrder");
if (connection.State != System.Data.ConnectionState.Closed)
{
connection.Close();
command.Dispose();
}

}
return myDataSet;
}


<asp:GridView ID="grdSaturday" runat="server" AutoGenerateColumns="False"
CellPadding="2" ForeColor="#333333" AllowPaging="True" PageSize="2" Width="100%"
OnRowCommand="grdSaturday_RowCommand"
OnPageIndexChanging="grdSaturday_PageIndexChanging" Height="108px"
CellSpacing="1">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="SubOrderId" HeaderText="#" ItemStyle-Width="10px" Visible="false" />
<asp:TemplateField HeaderText="غذا">
<ItemTemplate>
<%# Self.BaseData.GetTitle.FoodType(Convert.ToByte(Eva l("FoodTypeId").ToString())) + " (" + Eval("FoodTitle").ToString()+")"%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FoodQty" HeaderText="تعداد" />
<asp:TemplateField HeaderText="قيمت به ريال">
<ItemTemplate>
<%# Eval("SumPrice").ToString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="" ShowHeader="False" ItemStyle-Width="10px">
<ItemTemplate>
<asp:ImageButton ID="lnkModify" runat="server" CommandName="cmdModify" ToolTip="ويرايش"
CommandArgument='<%# Eval("SubOrderId") %>' ImageUrl="~/Images/Write16.png" CausesValidation="False" />
<br />
<asp:ImageButton ID="lnkDelete" runat="server" CommandName="cmdDelete" ToolTip="حذف"
CommandArgument='<%# Eval("SubOrderId") %>' OnClientClick="return confirm('آيا مطمئن هستيد؟')"
CausesValidation="False" ImageUrl="~/Images/Delete16.png" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#990033" />
<FooterStyle BackColor="#990033" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990033" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#990033" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>



private void Get_grdSaturday(Int64 userId, Byte mealId, String mealDate)
{

Class.SubOrder mySubOrder = new Class.SubOrder();
grdSaturday.DataSource = mySubOrder.Get_List("(Tb_Order.OrderId IN (SELECT OrderId FROM Tb_Order WHERE (UserId = " + userId.ToString() + ")AND(MealId = " + mealId.ToString() + ")AND (MealDate = '" + mealDate + "')))");
grdSaturday.DataBind();
}

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

nafarinesh
شنبه 07 مرداد 1391, 15:02 عصر
کسی نمی تونه کمک کنه؟ مشکل کجاست؟

fakhravari
شنبه 07 مرداد 1391, 20:18 عصر
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = Fakhravary.SQL.DAL.FillDataSet("SELECT TopicID, Subject FROM B_Topics");
GridView1.DataBind();
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.DataSource = Fakhravary.SQL.DAL.FillDataSet("SELECT TopicID, Subject FROM B_Topics");
GridView1.DataBind();
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}

nafarinesh
شنبه 07 مرداد 1391, 21:18 عصر
خوب من سه لایه می نویسم. ولی این سه لایه نیست.

malaki.davud
شنبه 07 مرداد 1391, 23:25 عصر
if (!IsPostBack) {
Topik k = new Topik();
GridView1.DataSource = k.All_Topik_Forum_ID(id);
GridView1.DataBind();
}



من این کد رو در form load قرار دادم ولی Topik رو نمی شناسد
کسی راه حلی نداره؟؟؟

orca13
شنبه 29 مهر 1391, 08:36 صبح
خوب من سه لایه می نویسم. ولی این سه لایه نیست.
مشکل شما حل شده؟
اگه حل نشده، بگید تا توضیح بدم (چون خودم مشابه این مشکل رو داشتم قبلا و حلش کردم)
موفق باشید.