Nån som ser vad som är fel i denna kod? Jag får felmeddelandet "Object reference not set to an instance of object" när jag ska buta sida med den inbyggda pagingen. det fungerar om jag tar bort metoden nedan. Allt fungerar också som det ska på första sidan. Jag gissar att det fungerar bättre om du använder ett "DataBound" event iställer för "Created". Created körs även vid postback då ViewState läses tillbaka och då har du inget DataItem... Tackar och bockar, det funkar kanon:) Created kommer att köras varje gång en rad skapas, dvs även direkt vid postback för att skapa upp alting från ViewState, vilket innebär att man inte har ett DataItem utan allt hämtas från ViewState.Gridproblem
aspx
<code>
<asp:GridView ID="GridView1" runat="server" DataSourceID="sqlGetAllNotChoosenAdvertises"
AutoGenerateColumns="False" GridLines="None" AllowPaging="True"
PageSize="20" OnRowCreated="GridView1_RowCreated">
</code>
code behind
<code>
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
int boldText = (int)DataBinder.Eval(e.Row.DataItem, "boldText");
int background = (int)DataBinder.Eval(e.Row.DataItem, "background");
int pic = (int)DataBinder.Eval(e.Row.DataItem, "pics");
if (boldText > 0)
e.Row.CssClass = "BoldText";
else
e.Row.CssClass = "RegText";
if (background > 0)
{
e.Row.BackColor = System.Drawing.Color.DarkGreen;
e.Row.ForeColor = System.Drawing.Color.White;
}
if (pic > 0)
e.Row.FindControl("lblPic").Visible = true;
else
e.Row.FindControl("lblPic").Visible = false;
}
}
</code>Sv: Gridproblem
Sv:Gridproblem
Men vad är det som är skillnaden på eventen? Kan ju vara bra att veta till en annan gång.Sv: Gridproblem
DataBound är det event som raisas när man anropar DataBind för att binda kontrollen till sin DataSource. Det sker bara vid DataBind och då har man tillgång till DataItem.
Var det förståligt?
PS: Bocka i att det är löst om det löste sig så springer inte folk in här för att vara hjälpsamma trots att det är klart...