如何在asp.net c#中将数据绑定到转发器控件?

时间:2017-01-31 14:13:25

标签: c# asp.net webforms repeater

我将数据绑定到来自公司数据库的转发器控制。我正在尝试从数据库中获取公司名称,并希望显示为标签,但它无法正常工作。

我的C#代码是:

string conn_string = ConfigurationManager.ConnectionStrings["UPOneConn"].ConnectionString;
SqlConnection con = new SqlConnection(conn_string);
con.Open();
string ComSelectCompanyDataStr = "Select Company_Name from Company_Details where Company_ID = '8' ";
SqlCommand ComSelectCompanyData = new SqlCommand(ComSelectCompanyDataStr, con);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = ComSelectCompanyData;
DataTable dt = new DataTable();
da.Fill(dt);

Repeater1.DataSource = dt;
Repeater1.Visible = true;   
con.Close();

和我的设计代码:

<div id="company_container">
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table>
                    <tr>
                        <td>
                            <asp:Label ID="Label1" runat="server"><%# Eval ("Company_Name") %></asp:Label></td>
                    </tr>
                </table>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td></td>
                </tr>            
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>

1 个答案:

答案 0 :(得分:1)

您必须添加:

Repeater1.DataBind();

之后

Repeater1.DataSource = dt;

所以:

Repeater1.DataSource = dt;
Repeater1.DataBind();

你的转发器不是它的ItemTemplate中的任何项目吗? 您应该设置如下:

<ItemTemplate>
            <tr>
                <td><%# Eval ("Company_Name") %></td>
            </tr>            
        </ItemTemplate>

你的SQL查询语法错误(如果公司ID是int)。

将其更改为:

"Select Company_Name from Company_Details where Company_ID = 8";