<asp:datagrid id="DGBClass" runat="server" CellPadding="4" BackColor="White" BorderWidth="1px"
BorderStyle="None" BorderColor="#3366CC" AutoGenerateColumns="False" Height="168px" Width="100%"
DataKeyField="BigClass_ID">
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="BigClass_ID" ReadOnly="True" HeaderText="大类编号"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="大类名称">
<ItemTemplate>
asp:Label id="Label2" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.BigClass_Name") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="edit_BigClass_Name" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "BigClass_Name") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="是否显示">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Enable") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox runat="server" id="edit_Enable" Checked='<%# DataBinder.Eval(Container.DataItem, "Enable") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
<asp:HyperLinkColumn Text="进入" DataNavigateUrlField="BigClass_ID" DataNavigateUrlFormatString="EditSClass.aspx?BID={0}"
HeaderText="小类编辑"></asp:HyperLinkColumn>
</Columns>我点编辑,出现这个错误
<EditItemTemplate>
    <asp:CheckBox runat="server" id="edit_Enable" Checked='<%# DataBinder.Eval(Container.DataItem, "Enable") %>'/>
</EditItemTemplate>指定转换无效

解决方案 »

  1.   

    估计是Enable字段数据类型的原因,
    <EditItemTemplate> 
        <asp:CheckBox runat="server" id="edit_Enable" Checked=' <%# DataBinder.Eval(Container.DataItem, "Enable") %>'/> 
    </EditItemTemplate> 在这里Enable必须为bit(布尔型)
      

  2.   

    public void BindGrid()
    {
    DGBClass.DataSource=DBOperate.SelectFormForum("SELECT BigClass_ID, BigClass_Name, Enable FROM Big_Class");
    this.Page.DataBind();
    }
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.DGBClass.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DGBClass_CancelCommand);
    this.DGBClass.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DGBClass_EditCommand);
    this.DGBClass.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DGBClass_UpdateCommand); }
    #endregion private void DGBClass_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    DGBClass.EditItemIndex = (int)e.Item.ItemIndex;
    BindGrid();
    } private void DGBClass_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    DGBClass.EditItemIndex = -1;
    BindGrid();
    } private void DGBClass_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string bid=DGBClass.DataKeys[(int)e.Item.ItemIndex].ToString();
    string s=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("edit_BigClass_Name")).Text;
    int b=0;
    if (((CheckBox)e.Item.FindControl("edit_Enable")).Checked == true)
    b=1;
    DBOperate.ExcSQL("UPDATE Big_Class SET BigClass_Name ='"+s+"', Enable = "+b+" WHERE (BigClass_ID = "+bid+")");
    DGBClass.EditItemIndex = -1;
    BindGrid();
    }