A.aspx中包含Datagrid.ascx控件,Datagrid.ascx控件中只有一个显示数据的Datagrid,
为什么Datagrid_SortCommand事件不执行,点击Datagrid的列头,Datagrid.ascx的Page_Load、InitializeComponent事件都被执行了,但是Datagrid_SortCommand事件不执行Datagrid设置,列头自动加载
<asp:datagrid 
id="Datagrid" runat="server" BorderWidth="1px" BorderStyle="None" Width="100%" EnableViewState="False" AllowSorting="True" AllowCustomPaging="True" PageSize="15"> <PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>

解决方案 »

  1.   

    检查一下在InitializeComponent()函数中有没这句话:
    this.Datagrid.SortCommand += new System.EventHandler(this.Datagrid_SortCommand);
      

  2.   

    ei?刚好遇到同样的问题.顺道问问.谢小妹妹回二楼:绑定语句我有:this.dataTab.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dataTab_SortCommand);
    但我在PageLoad中有这句:
    if (!this.IsPostBack)
    bindGrid();
    看起来很正常吧?但这么写总触发不了dataTab_SortCommand()事件.
    如果去掉 if (!this.IsPostBack) 这句,就可以正常触发事件.问题好奇怪.难道不datagrid.DataBind()就不能触发事件么??
    今天能解决的另开一帖领分.
      

  3.   

    http://www.microsoft.com/china/msdn/archives/library/dnaspp/html/aspnet-commondatagridmistakes.asp我的问题和ViewStateEnable=False时是一样的.可我明明设成True了阿.愁死!
      

  4.   

    谢谢你们
    在InitializeComponent()函数中有这句话:
    this.Datagrid.SortCommand += new System.EventHandler(this.Datagrid_SortCommand);
      

  5.   

    mm
    你的EnableViewState="False" 了.
    设为EnableViewState="True" 就没问题了.
      

  6.   

    忘了说了,前提是你和我一样:
    在PageLoad中:
    if (!this.IsPostBack)
    {
    ...
    this.Datagrid.DataBind();
    }
    的话.