【问题标题】:Assigning Datasource to a region将数据源分配给区域
【发布时间】:2009-02-20 04:29:14
【问题描述】:

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

基本上,我有一个显示标题信息的 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();
}

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

谢谢。

【问题讨论】:

    标签: c# asp.net forms datagrid


    【解决方案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 提供您的意见。中继器也适用,但对于绑定“a”记录,我认为 FormView 是理想的。谢谢。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 抱歉,我可能不应该在示例中使用表格。清除布局很可能是流布局,随机的,任何东西。我只希望一个区域包含在单个数据源中,并且我可以使用 evals 来绑定我认为合适的字段。希望我的问题越来越清楚。谢谢。
      【解决方案3】:

      对于 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。

      【讨论】:

      • 这不是我想要的,但它可以满足我的大部分需求。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 2020-02-13
      相关资源
      最近更新 更多