关于ASP网格视图的一些非常奇怪的事情

时间:2014-02-20 03:54:41

标签: c# asp.net gridview

我在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;

enter image description here

2 个答案:

答案 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)