我有一个gridview,OnRowDataBound事件链接到这个函数:
if (e.Row.RowType == DataControlRowType.DataRow)
{
ThisRow = e.Row.DataItem as MyObjectModel;
if (ThisRow.Property1 == null) { e.Row.Cells[5].Text = "-"; }
此代码查看数据源中对象属性的值,如果它为null,则将null转换为在第5列中显示“ - ”。我遇到的问题是,如果我更改顺序gridview的列,然后我需要更改每个其他修改的索引。 我想做的是将语句“e.Row.Cells [5] .Text”更改为“列标题为xyz的单元格”。
有什么建议吗?
感谢。
答案 0 :(得分:0)
我认为你可能最好在你的gridview代码中处理它,而不是你的代码,特别是如果你正在改变列。
以下是小马的一个例子。随意编辑。
<asp:TemplateField HeaderText="Likes Ponies?">
<ItemTemplate>
<asp:Label ID="uxLikesPoniesLabel" runat="server" Text=’<%#
DataBinder.Eval(Container.DataItem, "FavoritePonies").ToString() == "" ?
"I like " + DataBinder.Eval(Container.DataItem, "FavoritePonies") + " Ponies!" :
"-"
%>’ />
</ItemTemplate>
</asp:TemplateField>
我在这里使用C#(boolean condition) ? "value if true" : "value if false"
。
因此,此代码将检查特定行中的FavoritePonies
列是否为""
(因为NULL值显示为空字符串),如果是,则显示“ - ”。如果它不为null,那么它将DataBinder.Eval(Container.DataItem, "FavoritePonies")
中最初显示的内容显示为“我喜欢小马!”。