1

C# コードを使用して ASP.NET GridView を手動で作成し、ページングを有効にしています。ユーザーがあるページから別のページに移動すると、画面上の内容に応じて列幅が調整されます。ユーザーがどのページにいても GridView 列を同じままにしたいと思います (できれば、各列は特定の列の最大文字長に設定されます)。誰かがこれを達成するための最善の行動方針を提案できますか. これがGridViewにデータを入力する方法です

    private void BindData(string sortExpression, string sortDirection)
    {


        db_set_connection_string.set_db_connnection_string(configuration_manager.GetConfigValue("DBSTRING.1"));
        db_set_connection_string.set_individual_global_variables(configuration_manager.GetConfigValue("DBSTRING.1"));

        sSQLResults = db_connector_mysql.execute_query_with_results_returned("SELECT * From city", false);


        //Dynamically create columns
        foreach (DataColumn column in sSQLResults.Columns)
        {
            //So we aren't getting duplicates, we need to check to see if it exists first
            if (DoesColumnExistInGridView(column.ColumnName) == false)
            {
                BoundField nameColumn = new BoundField();
                nameColumn.DataField = column.ColumnName;
                nameColumn.HeaderText = column.ColumnName;
                nameColumn.SortExpression = column.ColumnName;
                GridView1.Columns.Add(nameColumn);
            }
        }            


        this.GridView1.DataSource = sSQLResults;

        if (sortExpression != null)
        {
            sSQLResults.DefaultView.Sort = sortExpression + " " + sortDirection;
        }            
        this.GridView1.DataBind();
    }
4

1 に答える 1

0

これを行うには 2 つの方法があります。列を動的に追加する際の幅を定義します。

 //Dynamically create columns
    foreach (DataColumn column in sSQLResults.Columns)
    {
        //So we aren't getting duplicates, we need to check to see if it exists first
        if (DoesColumnExistInGridView(column.ColumnName) == false)
        {
            BoundField nameColumn = new BoundField();
            nameColumn.DataField = column.ColumnName;
            nameColumn.HeaderText = column.ColumnName;
            nameColumn.SortExpression = column.ColumnName;
            nameColumn.Width=1;
            GridView1.Columns.Add(nameColumn);
        }
    }            

または、Gird View 行データバインドイベントでそれを行うことができます

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){
 e.Rows.Cell[1].width=1;}
于 2013-06-24T19:53:23.510 に答える