2012-02-16 63 views
0

我收到此错误:错误的SqlDataSource数据绑定到GridView的

Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.

我试图绑定SqlDataSource的结果为GridView

这是代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="grid_getbranch" Height="111px" Width="91px"> 
    <Columns> 
     <asp:TemplateField HeaderText="branch" SortExpression="branch"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("branch") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text='<%# Bind("branch") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="name" SortExpression="name"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("name") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label2" runat="server" Text='<%# Bind("name") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
<asp:SqlDataSource ID="grid_getbranch" runat="server" 
    ConnectionString="<%$ ConnectionStrings:svpolyConnectionString %>" 
    SelectCommand="SELECT branch.branch, course.name FROM branch INNER JOIN course ON branch.c_id = course.id WHERE (branch.c_id = @c_id)"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="DropDownList2" Name="c_id" 
      PropertyName="SelectedValue" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
+2

确保没有任何其他相关标记,可能是问题的根源? – 2012-02-16 20:23:30

+1

消息很明确,错误的来源并非来自您所显示的标记,您可以在控件或服务器端代码中找到所陈述的方法。 – Mubarek 2012-02-16 20:31:24

回答

0

你可以尝试改变你的SelectCommand查询:

SELECT branch.branch AS branch, course.name AS name FROM branch INNER JOIN course ON branch.c_id = course.id WHERE (branch.c_id = @c_id) 

我不知道它是造成你的错误,但它是我想尝试的第一件事。

0

删除绑定到标签字段。

也可参考这个问题How to 'bind' Text property of a label in markup

+0

或者使用Eval代替绑定在标签上? – PTansey 2015-04-24 21:22:59

+0

您不能绑定文本控件,只能绑定** data **字段。这里'绑定(“名称”)'* <名称**必须是来自数据库的数据而不是文本框或标签。 – 2015-04-25 05:52:53