我把它作为数据源放在我的gridView
中var source = from p in allComments
select new {p.Img, p.Name, p.Comment};
GridView1.DataSource = source;
GridView1.DataBind();
我明白了:
The DataSourceID of 'GridView1' must be the ID of a control of type IDataSource.
无法找到ID为“SqlDataSource1”的控件。
我的Gridview标记:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
style="z-index: 1; left: 317px; top: 374px; position: absolute; height: 597px; width: 666px"
BackColor="#CCCCCC" BorderColor="#999999"
BorderWidth="0px" CellPadding="4" CellSpacing="2"
DataSourceID="SqlDataSource1" ForeColor="Black" AllowPaging="True"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="#">
<HeaderStyle Width="500px" />
<ItemStyle Width="500px" />
<ItemTemplate>
<asp:Label ID="lblMessage" runat="server" Text='<%# Bind("Comment") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="#">
<HeaderStyle Width="100px" />
<ItemStyle Width="100px" />
<ItemTemplate>
<asp:Image ID="imgName" runat="server" imageUrl='<%# Bind("Img") %>'></asp:Image><br />
<asp:Hyperlink ID="hyperLink" runat="server" Text='<%# Bind("Name") %>' ></asp:Hyperlink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:2)
从Gridview中删除DataSourceID="SqlDataSource1"
,因为您在Code中设置了DataSource ..
var source = from p in allComments
select new {p.Img, p.Name, p.Comment};
GridView1.DataSource = source;
GridView1.DataBind();
您可以指定DataSourceID or DataSource
,但不能同时指定两者。
编辑:根据您的评论,您在分页时遇到问题,要处理分页,您必须再次绑定数据。
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
var source = from p in allComments
select new { p.Img, p.Name, p.Comment };
GridView1.DataSource = source;
GridView1.DataBind();
}
答案 1 :(得分:0)
您已获得属性DataSourceID="SqlDataSource1"
,错误消息表明代码中没有SqlDataSource
ID为SqlDataSource1
。
因此,您需要删除该属性才能将其与代码隐藏绑定。
你的网格视图去除应该是这样的:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
style="z-index: 1; left: 317px; top: 374px; position: absolute; height: 597px; width: 666px"
BackColor="#CCCCCC" BorderColor="#999999"
BorderWidth="0px"
CellPadding="4" CellSpacing="2"
ForeColor="Black" AllowPaging="True"
onrowdatabound="GridView1_RowDataBound">
您现在可以在没有该问题的情况下绑定GridView,您只能设置其中一个。您可以使用DataSource属性从代码绑定。或者您指定属性DataSourceId
。
答案 2 :(得分:0)
删除DataSourceID="SqlDataSource1"