0

ObjectDataSoureにバインドするGridviewがあります。

ObjectDataSourceは、クエリ結果とともにDataTableを返すDALメソッドを呼び出すビジネスオブジェクトを使用します。

アプリケーションは実行時に動作しますが、設計時に問題があります:GridViewのタスクウィザード->列の編集を使用する場合:[選択したフィールド]テキスト領域にフィールドが表示されません(したがって、ウィザードを使用して列を編集することはできません) 。

DALメソッド:

public override DataTable GetAllWorkers()
    {
        using (SqlConnection con = new SqlConnection(this.ConnectionString)) {
            SqlCommand cmd = new SqlCommand("t_Workers_GetAllWorkers", con);
            cmd.CommandType = CommandType.StoredProcedure;
            con.Open();
            return GetTable(cmd);
        } 

    }

    private DataTable GetTable(SqlCommand cmd)
    {

        SqlDataAdapter adp = new SqlDataAdapter();
        adp.SelectCommand = cmd;
        DataTable dt = new DataTable();
        adp.Fill(dt);
        return dt;

    }

BLLメソッド:

public static DataTable GetAllWorkers()
    {
        return DataProvider.Instance().GetAllWorkers();
    }

ASPX Webページ:

       <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
        SelectMethod="GetAllWorkers" TypeName="BLL.BizImpl"></asp:ObjectDataSource>

    <asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1" 
        EnableModelValidation="True" Height="156px" Width="270px">
    </asp:GridView>

誰かが問題の原因を説明できますか?

   Thanks
4

1 に答える 1

1

aspxページで列を明確に宣言していないため、ウィザードで列を表示できないようです。現時点では、GridViewにデータが入力されています。

AutoGenerateColumns

プロパティのデフォルトはtrueです。をfalseに変更して、列を自分で定義できます。そうすれば、それらに表示したいものなどをより細かく制御できます。

于 2012-09-12T10:48:20.363 に答える