gpt4 book ai didi

c# - 当它是整数数据类型时,如何在我的 gridview 中找到标签值

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:43 31 4
gpt4 key购买 nike

我有一个名为 gvcmi 的 GridView 。
在 DataBound 事件中,我想根据列的值为其着色。我要着色的列绑定(bind)到数据库表中的列。该列的数据类型是整数。这是我的片段:

protected void gvcmi_DataBound(object sender, GridViewRowEventArgs e)
{
Label mylbl = (Label)e.Row.Cells[8].FindControl("lblStatusv");

if ( mylbl.Text == "1")
{
e.Row.Cells[8].BackColor = System.Drawing.Color.Green;
e.Row.Cells[8].ForeColor = System.Drawing.Color.White;
}
}

当它运行时我得到这个错误:

System.NullReferenceException Object reference not set to an instance of an object

我知道这一定是因为我没有将整数转换为字符串?但我不确定何时进行转换。

这是 GridView 代码:

<asp:GridView id="gvcmi"
runat="server"
AutoGenerateColumns="false"
BorderWidth="1px"
BackColor="White"
CellPadding="3"
CellSpacing="2"
BorderStyle="Solid"
BorderColor="Black"
GridLines="Both"
Pager="30"
OnRowDataBound="gvcmi_DataBound"
OnRowCommand ="gvcmi_RowCommand"
>

<Columns>

<asp:TemplateField HeaderText="Customer #" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:LinkButton id="lbcustNum" runat="server" Text='<%#(Eval("customerid"))%>' CommandName="GetData" CommandArgument='<%# Container.DataItemIndex %>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Kana Name" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lblNameKana" runat="server" Text='<%#(Eval("namekana"))%>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Kanji Name" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lblNameKanji" runat="server" Text='<%#(Eval("namekanji"))%>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Gender" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lblgender" runat="server" Text='<%#(Eval("gender"))%>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Age" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lblage" runat="server" Text='<%#(Eval("age"))%>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Email" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lblemail" runat="server" Text='<%#(Eval("email"))%>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="# Visits" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lblnov" runat="server" Text='<%#(Eval("numberofvisits"))%>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Latest Visit" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lbllatestv" runat="server" Text='<%#(Eval("latestvisit", "{0: MMMM dd日 (ddd)}"))%>'/>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Visit Status" HeaderStyle-CssClass= "hdrBase" ItemStyle-CssClass="GridBase">
<ItemTemplate>
<asp:Label id="lblStatusv" runat="server" Text='<%#(Eval("visitstatus"))%>'/>
</ItemTemplate>
</asp:TemplateField>

</Columns>

</asp:GridView>

最佳答案

如果您正在访问其属性的对象是 null

,您可以使用 null 条件检查 ?.

因此 if ( mylbl?.Text == "1") 不会抛出 System.NullReferenceException,但是如果 mylbl 则条件不会通过null

请参阅 - https://csharp.today/c-6-features-null-conditional-and-and-null-coalescing-operators/获取更多信息。

关于c# - 当它是整数数据类型时,如何在我的 gridview 中找到标签值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45841015/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com