PDA

View Full Version : سوال: خواندن سطر آخر گرید در رویداد RowDataBound



z_software
دوشنبه 14 بهمن 1392, 20:28 عصر
سلام دوستان.
یه سوالی داشتم: میخوام یک سری عکس مربوط به گالری تصاویر رو از داخل بانک بخونم، بریزم تو گرید برای مدیر سایت که بتونه ویرایش بکنه یا حذف بکنه.
برای اینکه تصاویر رو تو گرید نمایش بدم، یه کدی نوشتم(داخل PageLoad) که به ظاهر درست بود تصاویر رو نشون نمیداد، سرچ که کردم، دیدم باید این کد رو تو رویداد RowDataBound گرید بنویسم، درست بود و تصاویرم رو نشون میداد، ولی یه مشکلی که هست اینه که این رویداد ظاهرا سطر آخر گرید رو نمیخونه اصلا حسابش نمیکنه.
این هم کد سمت Design :

<asp:TemplateField HeaderText="تصویر">
<ItemTemplate >
<asp:Image ID="img" runat="server" Width="100px" Height="100px" ImageUrl='<%# Eval("ImagePath") %>' />
</ItemTemplate>
</asp:TemplateField>

این هم کدی که در رویداد RowDataBoundنوشتم :

protected void GridNews_RowDataBound(object sender, GridViewRowEventArgs e)
{



if (GridNews.Rows.Count > 0)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
Label Gallerylbl = new Label();
long GalleryID;
SourenaDatabaseEntities Sourena = new SourenaDatabaseEntities();

var Query = from N in Sourena.SourenaGallery
select N;


if (Query.Count() > 0)
{
int QueryCount = Query.Count();
int GrivRows = GridNews.Rows.Count;

if (GridNews.Rows.Count == Query.Count() - 1)
{

for (int i = 0; i <= GridNews.Rows.Count - 1; i++)
{

Gallerylbl = (Label)GridNews.Rows[i].Cells[0].FindControl("GalleryLabel");
GalleryID = Convert.ToInt64(Gallerylbl.Text);
var Query2 = from N in Sourena.SourenaGallery
where N.SourenaGalleryID == GalleryID
select N;

Image img = (Image)GridNews.Rows[i].FindControl("img");
img.ImageUrl = ResolveUrl("~/") + ConfigurationManager.AppSettings["S:Gallery"] + Query2.First().ImagePath;
}



}




}
}


}

}

راستی من از entity برای ارتباط با بانک استفاده میکنم.
اگه هم راه بهتری برای صفحه ی ادمین برای گالری تصاویر دارین بهم بگین ممنون میشم.
خیلی ممنون و مرسی.