Asp.net gridview行评估:列作为名称参数而不是索引
我有一个gridview,OnRowDataBound事件链接到此函数:Asp.net gridview行评估:列作为名称参数而不是索引,asp.net,Asp.net,我有一个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列中的“-”。我遇到的
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的单元格”
有什么建议吗
谢谢。我认为最好在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#(布尔条件)?“值如果为真”:“值如果为假”
此处
因此,这段代码将检查特定行中的
FavoritePonies
列是否为”
(因为空值显示为空字符串),如果是,则显示“-”。如果它不为null,那么它将使用DataBinder.Eval(Container.DataItem,“FavoritePonies”)
显示数据库中最初的内容,并显示为“我喜欢Ponies!”。这很难,因为e返回当前行值