【发布时间】: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