PDA

View Full Version : صفحه بندی گرید در معماری سه لایه



sara_t
چهارشنبه 01 شهریور 1391, 09:33 صبح
سلام دوستان
من از معماری سه لایه برای پر کردن گرید استفاده کردم اما وقتی به صفحه 2 یا 3 میره چیزی نشون نمیده.

این کد گریدم هست:

<asp:GridView ID="GridView1" runat="server" Height="16px" Width="866px"
AllowPaging="True" AutoGenerateColumns="False"
onpageindexchanged="GridView1_PageIndexChanged"
onpageindexchanging="GridView1_PageIndexChanging"
PageSize="2">
<Columns>
<asp:BoundField DataField="GOOD_NAME" HeaderText="نام " >
<ItemStyle Width="400px" HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="STORE" HeaderText="نام فروشگاه" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:HyperLinkField DataNavigateUrlFields="SITE"
HeaderText="آدرس فروشگاه" DataTextField="SITE" NavigateUrl="SITE" >
<ItemStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
</Columns>
</asp:GridView>

کد برنامه:


protected void Page_Load(object sender, EventArgs e)
{
GooDSSITE aligood = new GooDSSITE();
if (!IsPostBack)
BindGrid(aligood);

}
private void BindGrid(GooDSSITE aligood)
{
GridView1.DataSource = DataGridSource(aligood);
GridView1.DataBind();

}
private DataTable DataGridSource(GooDSSITE aligood)
{
GooDSSITEBAL a = new GooDSSITEBAL();
DataTable dTable = new DataTable();
try
{
dTable = a.SearchDrug(aligood);
}
catch (Exception ee)
{
Label1.Text = ee.Message.ToString();
}
finally
{
a = null;
}
return dTable;
}


protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

GooDSSITE aligood = new GooDSSITE();
GridView1.PageIndex = e.NewPageIndex;
BindGrid(aligood);
}

mehdi_gerami65
چهارشنبه 01 شهریور 1391, 09:55 صبح
سلام دوستان
من از معماری سه لایه برای پر کردن گرید استفاده کردم اما وقتی به صفحه 2 یا 3 میره چیزی نشون نمیده.

این کد گریدم هست:

<asp:GridView ID="GridView1" runat="server" Height="16px" Width="866px"
AllowPaging="True" AutoGenerateColumns="False"
onpageindexchanged="GridView1_PageIndexChanged"
onpageindexchanging="GridView1_PageIndexChanging"
PageSize="2">
<Columns>
<asp:BoundField DataField="GOOD_NAME" HeaderText="نام " >
<ItemStyle Width="400px" HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="STORE" HeaderText="نام فروشگاه" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:HyperLinkField DataNavigateUrlFields="SITE"
HeaderText="آدرس فروشگاه" DataTextField="SITE" NavigateUrl="SITE" >
<ItemStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
</Columns>
</asp:GridView>

کد برنامه:


protected void Page_Load(object sender, EventArgs e)
{
GooDSSITE aligood = new GooDSSITE();
if (!IsPostBack)
BindGrid(aligood);

}
private void BindGrid(GooDSSITE aligood)
{
GridView1.DataSource = DataGridSource(aligood);
GridView1.DataBind();

}
private DataTable DataGridSource(GooDSSITE aligood)
{
GooDSSITEBAL a = new GooDSSITEBAL();
DataTable dTable = new DataTable();
try
{
dTable = a.SearchDrug(aligood);
}
catch (Exception ee)
{
Label1.Text = ee.Message.ToString();
}
finally
{
a = null;
}
return dTable;
}


protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

ali_GooDSSITE aligood = new ali_GooDSSITE();
GridView1.PageIndex = e.NewPageIndex;
BindGrid(aligood);
}




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

fakhravari
پنج شنبه 02 شهریور 1391, 12:38 عصر
protected void Page_Load(object sender, EventArgs e)
{
GooDSSITE aligood = new GooDSSITE();
if (!IsPostBack)
BindGrid(aligood);

}


برای صفحه بندی در رویداد PageIndexChanging

GridView1.DataSource = DataGridSource(aligood);
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();

sara_t
یک شنبه 05 شهریور 1391, 09:12 صبح
این روش رو بکار بردم اما جواب نداد.

کد مربوط به page_load رو پاک کردم و در PageIndexChanging خط زیر رو اضافه کردم:

GridView1.DataSource = DataGridSource(aligood);
aligood.GOOD_NAME = TextBox1.Text;

GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();