You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Web Forms中为GridView添加复选框列出现类型转换错误如何解决?

解决ASP.NET Web Forms GridView添加复选框列的类型转换错误

错误原因

你误用了Windows Forms框架的DataGridViewCheckBoxColumn控件,ASP.NET Web Forms的GridView属于Web控件体系,只能添加System.Web.UI.WebControls命名空间下的列类型(比如CheckBoxField、TemplateField),两者分属不同技术栈,因此出现类型转换错误。

解决方法

方法1:使用CheckBoxField(快速实现)

替换动态添加列的代码,改用Web Forms专属的CheckBoxField:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridViewSearch.DataSource = GetDataForSearch();
        
        // 创建Web Forms的复选框列
        CheckBoxField checkColumn = new CheckBoxField();
        checkColumn.HeaderText = "X";
        checkColumn.ItemStyle.Width = Unit.Pixel(50);
        
        GridViewSearch.Columns.Add(checkColumn);
        GridViewSearch.DataBind();
    }
}

方法2:使用TemplateField(灵活自定义)

如果需要对复选框的样式、绑定逻辑做更多控制,推荐在前台ASPX中声明TemplateField,同时关闭自动生成列避免重复:

<asp:GridView ID="GridViewSearch" runat="server" AutoGenerateColumns="false">
    <Columns>
        <!-- 手动绑定查询返回的字段 -->
        <asp:BoundField DataField="EntredDatetime" HeaderText="EntredDatetime" />
        <asp:BoundField DataField="OrderType" HeaderText="OrderType" />
        <asp:BoundField DataField="Printer_name" HeaderText="Printer_name" />
        <asp:BoundField DataField="BranchCode" HeaderText="BranchCode" />
        <asp:BoundField DataField="id" HeaderText="ID" />
        
        <!-- 自定义复选框列 -->
        <asp:TemplateField HeaderText="X">
            <ItemTemplate>
                <asp:CheckBox ID="chkSelect" runat="server" />
            </ItemTemplate>
            <ItemStyle Width="50px" />
        </asp:TemplateField>
    </Columns>
</asp:GridView>

后台代码保持原有的数据绑定逻辑即可,无需动态添加列:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridViewSearch.DataSource = GetDataForSearch();
        GridViewSearch.DataBind();
    }
}

内容的提问来源于stack exchange,提问作者ahmed abdelaziz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:07:28