0

考虑以下代码

protected void Button1_Click(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        DataColumn dtCol = new DataColumn();

        dtCol = new DataColumn("Name", typeof(string));
        dt.Columns.Add(dtCol);

        dtCol = new DataColumn("Address", typeof(string));
        dt.Columns.Add(dtCol);

        dtCol = new DataColumn("Account No", typeof(ButtonField));
        dt.Columns.Add(dtCol);

        ButtonField bfname = new ButtonField {
            HeaderText = "Account No",
            DataTextField="Account No",
            Text = "Klik", 
            ButtonType = ButtonType.Link, 
            CommandName = "ExecuteMe" };

        string[] strDataRow = new string[3];


        for (int intX = 0; intX < 10; intX++)
        {
            strDataRow[0] = "Name" + Convert.ToString(intX);
            strDataRow[1] = "Address" + Convert.ToString(intX);
            strDataRow[2] = bfname.Text; //Error Type of value has a mismatch with column typeCouldn't store <Account No0> in Account No Column.  Expected type is ButtonField.
            ButtonField btnField = bfname; // No Error but not appear in GridView1

            dt.Rows.Add(new object[] {strDataRow[0], strDataRow[1], strDataRow[2]});
            //dt.Rows.Add(new object[] { strDataRow[0], strDataRow[1], btnField }); // No Error but not appear in GridView1
            
            /* Error Message on strDataRow[2]
            Type of value has a mismatch with column typeCouldn't store <Account No0> in Account No Column.  Expected type is ButtonField.
             */
            
        }

        GridView1.DataSource = dt;
        GridView1.DataBind();

    }

如何将 ButtonField 存储在为 ButtonField 设置列的数据行中。ButtonField.Text 如何出现在每个 DataRow 中

是否可以将字符串值存储在为 ButtonField 设置的列的数据行中。当字符串为 click 时,将执行 ButtonField.CommandName。

注意*:ASPX 页面中的 GirdView 代码如下。

<asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
4

1 回答 1

0

我不确定您的问题,但不是将按钮放在 DataTable 中,而是我认为不可能的事情,为什么不创建一个 GridView 并添加一个包含您的按钮的 TemplateField。

于 2013-04-05T17:16:08.863 回答