错误但仅在添加GridView之后

时间:2015-08-06 08:00:46

标签: c# asp.net gridview webforms

这里有点奇怪。我使用以下代码将GridView添加到我的网页:

<asp:GridView ID="grdMain" runat="server" AutoGenerateColumns="False" DataKeyNames="Field1" DataSourceID="GridDataSource" EnableViewState="False" CssClass="TriageList" OnRowDataBound="grdListRowDataBound" AlternatingRowStyle-CssClass="GridAlternateRow" HeaderStyle-CssClass="GridHeader" RowStyle-CssClass="GridRow" PagerStyle-CssClass="GridPager">
    <Columns>
        <asp:BoundField DataField="Field1" ReadOnly="true" HeaderText="Field1" />
        <asp:BoundField DataField="Field2" ReadOnly="true" HeaderText="Field2" />
        <asp:BoundField DataField="Field3" ReadOnly="true" HeaderText="Field3" />
    </Columns>
</asp:GridView>

<asp:SqlDataSource 
    ID="GridDataSource" runat="server"  
    SelectCommand="SELECT [Name] FROM [Table] ORDER BY [Name]">
</asp:SqlDataSource>

我的网页上有4个这样的网格,它们都运行良好。但是,只要我添加另一个GridView,它就会显示以下消息:

The ConnectionString property has not been initialized. 

我添加的其他GridView使用与上述代码段相同的代码,但它使用了以下元素的不同名称:

  1. ID
  2. 的DataKeyNames
  3. 的DataSourceID
  4. OnRowDataBound
  5. 部分中定义的每个DataField

    我不确定为什么只是添加一个额外的网格会阻止它工作,如果我删除网格它工作正常。

    我还尝试删除OnRowDataBound引用,因此它没有运行任何代码,但这并没有帮助。

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

简单忽略的问题,我忘了为SQLDataSource设置一个ConnectionString,在创建动态时我没有在代码中执行此操作,下面的一段代码为我修复了这个。

GridDataSource.ConnectionString = varConnectionString;