【问题标题】:How to store ButtonField in a datarow where the column is set for ButtonField如何将 ButtonField 存储在为 ButtonField 设置列的数据行中
【发布时间】:2013-04-05 16:55:30
【问题描述】:

考虑下面的代码

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>

【问题讨论】:

  • 欢迎来到 StackOverflow!如果您可以缩小代码范围并仅询问一个问题,您可能更有可能获得有用的答案。

标签: asp.net gridview datarow buttonfield


【解决方案1】:

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

【讨论】:

  • 好吧,我和你的意见相同,但是由于 DataTable 仍然接受 ButtonField 的类型,我相信一定有办法做到这一点。否则 .NET Framework 必须纠正这个问题,以便我们知道 ButtonField 的类型不能像上面的代码那样直接接受它。
猜你喜欢
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多