我在Asp中创建了一个GridView,其中包含1个BoundField,1个按钮字段,1个命令字段,1个带有Button的模板字段,这里是代码
<asp:GridView runat="server" ID="rdGrid" ForeColor="#333333" BorderWidth="1px">
<Columns>
<asp:BoundField HeaderText="Description" DataField="Description" />
<asp:ButtonField Text="View Summary" CommandName="Summary" ControlStyle-CssClass="btn btn-primary btn-small" ControlStyle-ForeColor="White" />
<asp:CommandField EditText="Edit" ShowEditButton="true" ControlStyle-CssClass="btn btn-primary btn-small" ControlStyle-ForeColor="White"></asp:CommandField>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:Button ID="deleteButton" CssClass="btn btn-danger btn-small" runat="server" CommandName="Delete" Text="Delete" OnClientClick="return confirm('Are you sure you want to delete this Player?');" />
<%--<asp:HiddenField id="rdId" Value='<%# Eval("roundId") %>' runat="server" />--%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这是我得到的输出......非常奇怪 和隐藏字段Eval说它在当前上下文中不存在给出异常..这就是我评论隐藏字段的原因..
用于绑定网格的代码
string cs = ConfigurationManager.AppSettings["ConnectionString"];
MySqlConnection register = new MySqlConnection(cs);
register.Open();
MySqlCommand cmd = new MySqlCommand("SELECT * FROM rounds;", register);
MySqlDataAdapter dataadapter = new MySqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
DataSet ds = new DataSet();
dataadapter.Fill(ds, "rounds");
register.Close();
DataTable dt = new DataTable();
dt = ds.Tables["rounds"];
DataTable dt1 = new DataTable();
dt1.Columns.Add("Description");
dt1.Columns.Add("roundId");
foreach (DataRow dr in dt.Rows)
{
dt1.NewRow();
string des = dr["Description"].ToString();
string rid=dr["roundId"].ToString();
dt1.ImportRow(dr);
string[] arr1D = { des,rid };
}
rdGrid.DataSource = dt1;
rdGrid.DataBind();
rdGrid.RowCommand += rdGrid_RowCommand;
答案 0 :(得分:1)
根据您的带有网格视图的图像,您有两列描述,似乎您必须放置
您的网格视图中的AutoGenerateColumns
为false,如下所示
<asp:GridView runat="server" AutoGenerateColumns="false" ID="rdGrid" ForeColor="#333333" BorderWidth="1px">
比你不会在UI中获得额外的描述栏。
此外,如果您绑定更多列,它们也应显示为自动生成的列。但现在你只有描述栏。
您可能需要更改select语句以获取所需的所有列
select roundId, Description, .... from YourTable
答案 1 :(得分:0)
对于圆形ID,我认为您使用gridview的DataKeyNames属性。