将数据源分配给区域

时间:2009-02-20 04:29:15

标签: c# asp.net forms datagrid

我想知道是否有一个现有的控件可以用来实现我的目标。

基本上,我有一个html表,显示我的标题信息。

它看起来像这样:

<table class="tableEdit">
    <tr>
        <th>Job ID</th><td>10</td>
        <th>Client</th><td>Tom</td>
    </tr>
    <tr>
        <th>Comments</th><td>Comments are here</td>
    </tr>
</table>  

我想知道是否存在可用作容器的现有控件。然后我可以将数据源分配给该控件 并利用这些字段值。

<asp:Somecontrol runat="server" ID="someid">

<table class="tableEdit">
    <tr>
        <th>Job ID</th><td><%# Eval("Id") %></td>
        <th>Client</th><td><%# Eval("Client.Name") %></td>
    </tr>
    <tr>
        <th>Comments</th><td><%# Eval("Comments") %></td>
    </tr>
</table> 

</asp:Somecontrol>

private void BindHeader()
{
 SomeObjectType data = DAL.SomeMethod();
 someid.Datasource = data;
 someid.DataBind();
}

有什么可以做的吗?我希望能够控制容器中字段的布局。

感谢。

3 个答案:

答案 0 :(得分:1)

实际上我所追求的是FormView控件。

我之前从未使用过此控件,但这是我想要做的确切控制。

它允许标记区域,分配数据源并根据需要绑定项目。

   <asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource2" Visible="false">
                    <ItemTemplate>
                        <table style="border-collapse: collapse;" class="tableEdit">
                            <tr>
                                <td>ClientId</td>
                                <td><asp:Label ID="ClientId" runat="server" Text='<%# Eval("ClientId") %>' /></td>
                            </tr>
                            <tr>
                                <td>ClientCode</td>
                                <td><asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("ClientCode") %>' /></td>
                            </tr>
                            <tr>
                                <td>Name</td>
                                <td><asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("Name") %>' /></td>
                            </tr>
                            <tr>
                                <td>BillingContactName</td>
                                <td><asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("BillingContactName") %>' /></td>
                            </tr>

感谢AI W的输入。 Repeater也适用于绑定“a”记录,FormView是我认为的理想选择。感谢。

答案 1 :(得分:0)

使用GridView控件。您可以在设计模式下将CSS类附加到许多属性以控制布局。

答案 2 :(得分:0)

for asp.net 2.0

<asp:Repeater runat="server" id="someid">
        <ItemTemplate>
    <table class="tableEdit">
        <tr>
            <th>Job ID</th><td><%# Eval("Id") %></td>
            <th>Client</th><td><%# Eval("Client.Name") %></td>
        </tr>
        <tr>
            <th>Comments</th><td><%# Eval("Comments") %></td>
        </tr>
    </table>
        </ItemTemplate>
</asp:Repeater>

你可以在asp.net 3.5中使用该控件,但我不会尝试使用该语法,因为我不会每天使用3.5。