sql >> Databáze >  >> RDS >> Sqlserver

Jak generovat dynamické štítky a používat název a hodnotu sloupce jako text

Můžete zkusit navázat opakovač na Datatable ColumnCollection:

private DataTable _dataTable;

public void LoadRepeater()
{
    //load dataset
    _dataTable = myDataSet.Tables[0];
    repeater.DataSource = _dataTable.Columns;
    repeater.DataBind();
}

public string GetColumnValue(string columnName)
{
    return _dataTable.Rows[0][columnName].ToString();
}

Poté na opakovači:

<ItemTemplate>
   <div class="hidOverflow smallPad">
        <div class="setFloatL halfWidth vertAlignT">
            <span class="profileLabel"><%# Eval("ColumnName") %></span>
        </div>
        <div class="setFloatL vertAlignT">
            <asp:Label ID="lbl2" ClientIDMode="Static" runat="server" Text='<%# GetColumnValue(Eval("ColumnName")) %>'></asp:Label>
        </div>
  </div>
</ItemTemplate>

To však bude fungovat pouze v případě, že máte v DataTable jeden řádek.

Pokud máte více řádků, možná budete muset zahrnout další opakovač pro dimenzi řádku.

----------------------------------------------- -------------------

Chcete-li rozdělit sloupce, můžete udělat něco takového (netestováno):

private void LoadRepeater()
{
    //load dataset
    _dataTable = myDataSet.Tables[0];
    int columnCount = _dataTable.Columns.Count;
    int half = (int)columnCount/2;

    var columnCollection = _dataTable.Columns.OfType<DataColumn>();
    var firstHalfColumns = columnCollection.Take(half);
    var secondHalfColumns = columnCollection.Skip(half);

    repeater1.DataSource = firstHalfColumns;
    repeater1.DataBind();

    repeater2.DataSource = secondHalfColumns;
    repeater2.DataBind();
}



  1. Chyba syntaxe na nebo blízko USING

  2. Tvůrce ORACLE FORMS

  3. Jak získat row_number v MySQL

  4. Optimalizujte dotaz mysql pro použití indexu na klauzuli Bitwise where