C#Gridview:设置AutoGenerateEditButton

时间:2010-03-05 16:26:31

标签: c# asp.net gridview

所有。我在使用GridView.AutoGenerateEditButton属性为我做任何事情时遇到了问题。现在,我把它设置为true,我甚至没有将按钮添加到我的GridView中,所以显然我甚至无法进一步编码实际事件。这是我到目前为止所做的(对于凌乱的代码感到抱歉;我已经接近我的截止日期了,而且有点疯狂):

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
using(SqlDataReader dr = cmd.ExecuteReader())
{
    DataSet ds1 = new DataSet();
    DataTable dt1 = ds1.Tables.Add("Specs 1");
    if (dt1.Rows.Count == 0)
    {
        ds1.Tables["Specs 1"].Columns.Add("General Information");
        ds1.Tables["Specs 1"].Columns.Add("Customer Name");
        ds1.Tables["Specs 1"].Columns.Add("Address");
        // etc.
    }
    while (dr.Read())
    {
        DataRow newRow = ds1.Tables["Specs 1"].NewRow();
        int x = 0;
        foreach (DataColumn thisColumn in ds1.Tables["Specs 1"].Columns)
        {
            newRow[ds1.Tables["Specs 1"].Columns[x]] = Convert.ToString(dr[x]);
            x += 1;
        }
        ds1.Tables["Specs 1"].Rows.Add(newRow);
    }
    DataSet flipped_ds1 = FlipDataSet(ds1); // Flips the dataset's orientation.

然后,当我将GridView添加到页面时,我使用以下代码:

GridView outputGrid1 = new GridView();
outputGrid1.ShowHeader = false; // Remove the integer headings.
outputGrid1.DataSource = flipped_ds1;
outputGrid1.DataBind();
outputGrid1.AutoGenerateEditButton = true;
Controls.Add(outputGrid1);

现在,正在按照我想要的方式添加列,并且数据正确填充。但是,通过将GridView.AutoGenerateEditButton属性设置为true,我没有我认为应该具有的编辑按钮。我确定我错过了一些简单的东西;有人可以帮忙吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

您是否尝试在调用DataBind()之前设置AutoGenerateEditButton?有没有办法阻止DataSet中的更新(内省可能会检测到它并避免提供无用的按钮)?