Forum
db deki category tablom ile içerik tablomun id leri ilişkili. Yani Category tablomdaki id ile Content tablomun içindeki kategory id ilişkili.
Content tablomda verileri çekerken kategori id sinide çekmek zorundayım ve bu id lerde sayı yerine kategorının ismi çıkmalı ama yapamadım bir türlü
Repeaterda Böyle bir yol izlemiştim ve category id sini isim olarak göstermişti :
lblcat.Text = entity.Category.Name;
Eğer Entity.Category.Id ile ID gelmiyor ise Lazy loading kapalı olabilir ki siz ismi çekiebiliyorsunuz. Sorun yaşadığınız kodu paylaşırsanız yardımcı olmaya çalışayım.
Saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Repeaterda aynı işlemi yaptım çalışmıştı ordaki kod onun kodu örnek olsun diye yazdım.
Benim sorunum gridviewde ki categoryid yi çektiğim alanda bana id yi değilde o id deki ismi göstermesi.
Tamam bende buradan bahsedıyorum sız label a set ettıgınız kodu gondermıssınız bır grıdı doldurdugunuz ve almak ıstedıgınız yerı ısaretleyerek tum kodu paylasın cozmeye calısalım
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Repeaterda Böyle bir yol izlemiştim ve istediğimi almıştım
aspx sayfası
<asp:Repeater ID="rpt1" OnItemCommand="rpt1_ItemCommand" OnItemDataBound="rpt1_ItemDataBound" runat="server">
<ItemTemplate>
<tr>
<td><asp:Label ID="lblcat" runat="server"></asp:Label></td>
<td><asp:Label ID="lblsub" runat="server" ></asp:Label></td>
<td><asp:Label ID="lblisim" runat="server" Text='<%#Eval("Name") %>'></asp:Label></td>
<td><asp:Label ID="lblstat" runat="server" /></td>
<td style="text-align:center; " ><a href='ContentEdit.aspx?id=<%#Eval("id") %>&name=cont' ><img src="Guncelle.jpg" /></a></td>
<td style="text-align:center;"><a href='?id=<%#Eval("id") %>&name=sil' onclick="return silOnayla();" ><img src="sil.jpg" /></a></td>
</tr>
</ItemTemplate>
</asp:Repeater>
cs Sayfasıda bu şekilde :
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DALL.Content entity = e.Item.DataItem as DALL.Content;
CheckBox chstat = e.Item.FindControl("chstat") as CheckBox;
Label lblstat = e.Item.FindControl("lblstat") as Label;
if (entity.StatusTypeId == 1)
{
lblstat.Text = "Aktif";
}
else
{
lblstat.Text = "Pasif";
}
Label lblcat = e.Item.FindControl("lblcat") as Label;
Label lblsub = e.Item.FindControl("lblsub") as Label;
lblcat.Text = entity.Category.Name;
lblsub.Text = entity.SubCategory.Name;
}
}
List<DALL.Content> kayit = db.Contents.ToList(); kısmını
var kayit = db.Contents.Include("Category").ToList(); seklinde deneyin olmaz ıse bır linq join yazmanız gerekecek. eger content icinde Category Id Entity Seklinde relation ise
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Sorunumu çözdüm belki başkalarına yardımcı olur
db imdeki Name alanını e.row.cells[1] ile eşitleyince artık id yi değil ismi gösteriyor
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DALL.Content db = e.Row.DataItem as DALL.Content;
e.Row.Cells[1].Text = db.SubCategory.Name;
e.Row.Cells[0].Text = db.Category.Name;
if (db.StatusTypeId == 1)
{
e.Row.Cells[2].Text = "Aktif";
}
else
{
e.Row.Cells[2].Text = "Pasif";
}
}
}
Blgilendirme ve geri dönüş için çok teşekkürler
saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com