【问题标题】:ASP.Net GridView- DataBind method does not workASP.Net GridView-DataBind 方法不起作用
【发布时间】: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


【解决方案1】:

为什么是 c# 标签?

c#这样;

string query = "Select * From databasetablename";//Sample query
MySqlDataAdapter adaptor = new MySqlDataAdapter(query, connectionname);
DataTable table = new DataTable();
adaptor.Fill(table);
dataGridView1.DataSource = table;

【讨论】:

    【解决方案2】:

    您正在尝试将 gridview 绑定到没有元素的列表。 你能做类似的事情吗:

    List<MatchedRegexObject> matchedRegexObj = new List<MatchedRegexObject>();
    //Populate matchedRegexObj
    MatchedRegexObject m = new MatchedRegexObject();
    m.Id = "id1";
    m.MatchedPart = "Matchpart1";
    m.RegExpression = "RegEx1";
    matchedRegexObj.Add(m);
    gvResult.DataSource = matchedRegexObj;
    gvResult.DataBind();
    

    让我知道进展如何。 干杯1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 2018-04-11
      • 2011-11-26
      • 2011-10-20
      • 2017-02-24
      • 1970-01-01
      • 2021-07-20
      相关资源
      最近更新 更多