我的DataGrid是这样写的:
<asp:datagrid id="DataGridClass2" runat="server" CssClass="wordblack12" AllowPaging="True" Width="580px" HorizontalAlign="Center" Height="120px" AutoGenerateColumns="False" DataKeyField="id">
......
<Columns>
<asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="序号"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="一级栏目名称">
<ItemTemplate>
<asp:Label id="oneLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "class1_name") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="onename" runat="server" SelectedIndex='<%# DataBinder.Eval(Container.DataItem, "class1_name") %>'>
<asp:ListItem>A</asp:ListItem>
<asp:ListItem>B</asp:ListItem>
<asp:ListItem>AB</asp:ListItem>
<asp:ListItem>O</asp:ListItem>
<asp:ListItem>RH+</asp:ListItem>
<asp:ListItem>RH-</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="二级栏目名称">
<ItemTemplate>
<asp:Label id="twoLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "class2_name") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="twoname" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "class2_name") %>'>
</asp:TextBox>
<asp:RequiredFieldValidator id="Requiredfieldvalidator2" runat="server" ControlToValidate="twoname" Display="Dynamic">不可以空白!</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="更新" HeaderText="修改" CancelText="取消" EditText="编辑">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<FooterStyle HorizontalAlign="Center"></FooterStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" ButtonType="PushButton" HeaderText="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>
<PagerStyle NextPageText="下一页" PrevPageText="上一页" HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
</asp:datagrid>后台代码update这样写的:private void DataGridClass2_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection MyConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
string UpdateCmd = "UPDATE jq_class2 SET class1_name = @SName, class2_name = @TName WHERE id = @uid";
SqlCommand MyCommand = new SqlCommand(UpdateCmd, MyConnection);
SqlParameter parm1=new SqlParameter("@uid",SqlDbType.Int);
parm1.Value=DataGridClass2.DataKeys[e.Item.ItemIndex];
MyCommand.Parameters.Add(parm1);DropDownList onename;
onename = (DropDownList)e.Item.FindControl("onename");
MyCommand.Parameters["@SName"].Value = onename.SelectedItem.ToString();SqlParameter parm3=new SqlParameter("@TName",SqlDbType.NVarChar,30); 
parm3.Value=((TextBox)e.Item.FindControl("twoname")).Text.Trim(); 
MyCommand.Parameters.Add(parm3);MyCommand.Connection.Open();
MyCommand.ExecuteNonQuery();
DataGridClass2.EditItemIndex = -1;
MyCommand.Connection.Close();Message.Text = "更新数据成功!";
BindGridToSource();
}执行后点击“更新”按钮没有反应,这是怎么回事?

解决方案 »

  1.   

    请确认InitializeComponent()方法里有:this.DataGridClass2.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGridClass2_UpdateCommand);
      

  2.   

    也看一下有没有在datagrid的editcommand事件中有:
    //指定编辑行
    dgDepart.EditItemIndex=e.Item.ItemIndex;
    BindData();
      

  3.   

    InitializeComponent()方法里在哪里
      

  4.   

    我的InitializeComponent()里面是这样写的:
    this.DataGridClass2.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGridClass2_ItemCommand);
    this.Load += new System.EventHandler(this.Page_Load);
      

  5.   

    现在我点击更新后报错:
    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------指定的转换无效。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 行 37:</ItemTemplate>
    行 38:<EditItemTemplate>
    行 39:<asp:DropDownList id="onename" runat="server" SelectedIndex='<%# DataBinder.Eval(Container.DataItem, "class1_name") %>'>
    行 40:<asp:ListItem>A</asp:ListItem>
    行 41:<asp:ListItem>B</asp:ListItem>源文件: E:\aspnet\manage\manageclass2.aspx    行: 39 
      

  6.   

    http://singlepine.cnblogs.com/articles/266538.html