我一直在爲此撓撓我的頭腦,現在需要一些幫助。我有一個GridView,我想根據數據庫字段更改該行的背景顏色。數據庫字段爲「無效」。對象沒有設置爲對象的實例
下面是標記:
<asp:GridView ID="GridView1" runat="server" DataSourceID="WishListDS" AutoGenerateColumns="false" CssClass="WishListGridView" GridLines="None" OnRowDataBound="WishListGV_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div class="wlMessage">
<asp:Hyperlink ID="ViewHL" runat="server" Text="View" NavigateUrl='<%# "WishListSearchResults.aspx?id=" + Eval("sysid")%>' />
<asp:Hyperlink ID="EditHL" runat="server" Text="Edit" NavigateUrl='<%# "WishListEdit.aspx?id=" + Eval("sysid")%>' />
</div>
<asp:Hyperlink ID="NameLBL" Runat="server" Text='<%# Eval("customName")%>' NavigateUrl='<%# "WishListSearchResults.aspx?id=" + Eval("sysid")%>' CssClass="wlGVContentTitle" />
<asp:Label ID="ArrivalLBL" Runat="server" Text='<%# Eval("earliestArrival","{0:d}") + " - " + Eval("latestArrival","{0:d}")%>' CssClass="wlGVContent" />
<asp:Label ID="StateLBL" Runat="server" Text='<%# Eval("City") + ", " + Eval("State")%>' CssClass="wlGVContent"></asp:Label>
<asp:HiddenField ID="InactiveHF" runat="server" value='<%# Eval("InActive") %>' />
<hr />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
下面是代碼:
protected void WishListGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HiddenField hf = (HiddenField)e.Row.FindControl("InActiveHF");
if (hf.Value == "True")
{
}
}
}
我得到一個錯誤:
Object reference not set to an instance of an object."
的行
if (hf.Value == "True")
任何人對此有何想法?
你回答的工作!非常感謝兄弟! – Enrico
@ user1018535:很高興幫助!:) [另請參閱](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – abatishchev
..這種方法也可以很當它可能「工作」時容易隱藏錯誤[通過不拋出異常]它可能也會默默地*不*按照期望工作*僅當*預期*時使用* FindControl'可以返回null(這是*罕見發生*以我的經驗)。在這種情況下,該解決方案/方法[可能] **防止報告有效的編程錯誤**。 – 2012-08-09 19:26:06