sql >> データベース >  >> RDS >> Sqlserver

動的ラベルを生成し、列名と値をテキストとして使用する方法

    リピーターをDatatableColumnCollectionにバインドしてみてください:

    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();
    }
    

    次にリピーターで:

    <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>
    

    ただし、これはDataTableに1つの行がある場合にのみ機能します。

    より多くの行がある場合は、行ディメンションに追加のリピーターを含める必要がある場合があります。

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

    列を分割するには、次のようにします(テストされていません):

    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. SQLServerでユーザー定義関数を暗号化する方法

    2. 更新クエリのステートメントを準備するにはどうすればよいですか?

    3. MYSQLは各カテゴリからランダムに選択します

    4. SQL Server(T-SQL)に接続されている現在のワークステーション名を返す