要删除表1中的一行数据,并且刷新表1中数据,表2与表1有关联(表2外键与表1主建关联),我采用MyDataGrid的OnSelectedIndexChanged="MyDataGrid_SelectedIndexChanged" OnDeleteCommand="MyDataGrid_DelectCommand"方法对表1进行操作,此方法删除和刷新表2没有问题,产生错误如下:“/WebNews”应用程序中的服务器错误。
--------------------------------------------------------------------------------编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0122: 不可访问“WebNews.admin_class1.MyDataGrid_SelectedIndexChanged(object, System.EventArgs)”,因为它受保护级别限制源错误:行 15: <table align="center">
行 16:  <tr>
行 17:  <td><asp:datagrid id="MyDataGrid" PageSize="4" AllowPaging="True" Width="750px" CellPadding="3" AutoGenerateColumns="False" OnSelectedIndexChanged="MyDataGrid_SelectedIndexChanged" OnDeleteCommand="MyDataGrid_DelectCommand"
行 18:DataKeyField="classid" ItemStyle-CssClass="txt" Runat="server" HeaderStyle-CssClass="tdbg">
行 19: <EditItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></EditItemStyle>

解决方案 »

  1.   

    还用SelectedIndexChanged不是直接就能用的给DataGrid里面添加一个按钮列不用显示出来,假设这个按钮列是第五列,那么在DataGrid的
    private void dgSearchResult_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    事件里面添加
    e.Item.Attributes.Add("OnClick",Page.GetPostBackClientEvent(e.Item.Cells[4].Controls[0],String.Empty));    
    当单击DataGrid的某一行时就会激发
    selectedIndexchanged事件要把commandname设置成select
      

  2.   

    在MyDataGrid有一个按钮列,这个按钮列是第4列,请问:在DataGrid的
    private void dgSearchResult_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    事件能用VS。NET的Web 窗体设计器生成吗?如果行该怎么做?
    另外,commandname是哪个控件的属性?指点一下拉:)