【发布时间】:2014-07-03 10:18:18
【问题描述】:
我有一个网格视图,我正在尝试使用自定义对象列表来填充它。但是,网格没有被填充。
以下是代码摘录:
.ASPX 文件:
<asp:GridView ID="gvResult" runat="server" ondatabound="gvResult_DataBound"
onrowdatabound="gvResult_RowDataBound"
onrowdeleting="gvResult_RowDeleting" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="Id" DataField="Id"/>
<asp:BoundField HeaderText="Regular Expression" DataField="RegExpression"/>
<asp:BoundField HeaderText="MatchedPart" DataField="MatchedPart"/>
</Columns>
</asp:GridView>
我的对象定义如下:
public class MatchedRegexObject
{
public string Id { get; set; }
public string RegExpression { get; set; }
public string MatchedPart { get; set; }
}
这是我的 .ASPX.CS 文件
List<MatchedRegexObject> matchedRegexObj = new List<MatchedRegexObject>();
//Populate matchedRegexObj
gvResult.DataSource = matchedRegexObj;
gvResult.DataBind();
当我将“AutoGenerateColumns”属性设置为 true 时,它工作得非常好。但是,当我通过将“AutoGenerateColumns”属性设置为 false 来提供自定义列名时,网格不会出现。有人可以帮忙吗?
【问题讨论】:
-
您可能希望将您的列表转换为数据表?
-
您将
AutoGenerateColumns从 True 更改为 False。这是您在工作版本和非工作版本之间所做的唯一更改吗? -
我复制了你的代码,它对我来说很好用。你确定你没有在你的事件处理程序中做任何奇怪的事情吗?如果你把 GridView 剥离到它最基本的形式,它仍然不起作用吗?
-
@AnnL。我将“AutoGenerateColumns”更改为 false,并使用“ColumnCollection”属性将列添加到网格中。我将每一列设置为一个边界域。
-
尝试重新打开
AutoGenerateColumns,看看网格是否重新出现。如果没有,您的问题可能不是该属性已更改。
标签: c# asp.net gridview data-binding