0

我有一个绑定到 ObjectDataSoure 的 Gridview。

ObjectDataSource 使用调用 DAL 方法的业务对象,该方法返回带有查询结果的 DataTable。

应用程序在运行时工作,但在设计时有一个问题:当我使用 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 网页:

       <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

属性默认为真。您可以将 设置为 false 并自己定义列。然后,您可以更好地控制要在其中显示的内容等。

于 2012-09-12T10:48:20.363 回答