Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与委托匹配的方法没有重载';System.EventHandler_C#_Gridview_Merge_Row_Gridview Sorting - Fatal编程技术网

C# 与委托匹配的方法没有重载';System.EventHandler

C# 与委托匹配的方法没有重载';System.EventHandler,c#,gridview,merge,row,gridview-sorting,C#,Gridview,Merge,Row,Gridview Sorting,我正在合并Gridview列标题中的两行。这一行必须分类。要将排序功能添加到列标题,我需要将LinkButton控件添加到TableCell,然后将排序方法分配给click事件。我得到了“SectionGridView\u排序无重载…”我不知道如何将事件添加到单击操作中。代码如下: TableCell cellSecID = new TableHeaderCell(); cellSecID.HorizontalAlign = HorizontalAlign.Ce

我正在合并Gridview列标题中的两行。这一行必须分类。要将排序功能添加到列标题,我需要将LinkButton控件添加到TableCell,然后将排序方法分配给click事件。我得到了“SectionGridView\u排序无重载…”我不知道如何将事件添加到单击操作中。代码如下:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
如何将排序方法分配给单击事件

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
更新 这是我的排序方法:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
 protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
        {
             //Get the CourseID
            populateSectionGrid();
            DataTable dtSectionGridData = SectionGridView.DataSource as DataTable;
            SectionGridViewSortExpression = e.SortExpression;

            if (dtSectionGridData != null)
            {
                DataView dataView = new DataView(dtSectionGridData);
                dataView.Sort = SectionGridViewSortExpression + " " + ConvertSectionSortDirectionToSql(e.SortDirection);

                SectionGridView.DataSource = dataView;
                SectionGridView.DataBind();
            }
        }

事件处理程序方法的签名与委托类型不兼容

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
您可能正在绑定
LinkButton。单击带有
GridView排序的
event

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
 //section gridview should be like this
 protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
 {

 }
然而,你需要与

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{

}
如果您没有现有的
SectionGridView
排序事件,那么您的
lnkHeader
单击事件应该如下所示:(尽管不是很好的做法)

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);

事件处理程序方法的签名与委托类型不兼容

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
您可能正在绑定
LinkButton。单击带有
GridView排序的
event

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
 //section gridview should be like this
 protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
 {

 }
然而,你需要与

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{

}
如果您没有现有的
SectionGridView
排序事件,那么您的
lnkHeader
单击事件应该如下所示:(尽管不是很好的做法)

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);

事件处理程序方法的签名与委托类型不兼容

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
您可能正在绑定
LinkButton。单击带有
GridView排序的
event

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
 //section gridview should be like this
 protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
 {

 }
然而,你需要与

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{

}
如果您没有现有的
SectionGridView
排序事件,那么您的
lnkHeader
单击事件应该如下所示:(尽管不是很好的做法)

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);

事件处理程序方法的签名与委托类型不兼容

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
您可能正在绑定
LinkButton。单击带有
GridView排序的
event

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
 //section gridview should be like this
 protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
 {

 }
然而,你需要与

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{

}
如果您没有现有的
SectionGridView
排序事件,那么您的
lnkHeader
单击事件应该如下所示:(尽管不是很好的做法)

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);

更新问题后,您的问题有解决方法:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
更改此行:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
lnkHeader.Click += new EventHandler(lnkHeader_Click);
在事件处理程序中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{
    sortExpression = "yoursortexpression"; //class level string or ViewState
    SectionGridView_Sorting(null, null); //intentionally calling gridview sorting event
}
在gridview排序事件中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
    {
         //Get the CourseID
        populateSectionGrid();
        DataTable dtSectionGridData = SectionGridView.DataSource as DataTable;

       string sDirection = "ASC" ;

        if(sortExpression == null)
        {   
           SectionGridViewSortExpression = e.SortExpression;
           sDirection = e.SortDirection;
        } 
        else
           SectionGridViewSortExpression = sortExpression

        if (dtSectionGridData != null)
        {
            DataView dataView = new DataView(dtSectionGridData);
            dataView.Sort = SectionGridViewSortExpression + " " + ConvertSectionSortDirectionToSql(sDirection);

            SectionGridView.DataSource = dataView;
            SectionGridView.DataBind();
        }
    }

注意:上述代码未经测试。可能需要对其进行微调。例如保持
SortExpression
SortDirection
并检查
gridview排序
事件。在问题更新后的

中,您的问题有解决方法:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
更改此行:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
lnkHeader.Click += new EventHandler(lnkHeader_Click);
在事件处理程序中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{
    sortExpression = "yoursortexpression"; //class level string or ViewState
    SectionGridView_Sorting(null, null); //intentionally calling gridview sorting event
}
在gridview排序事件中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
    {
         //Get the CourseID
        populateSectionGrid();
        DataTable dtSectionGridData = SectionGridView.DataSource as DataTable;

       string sDirection = "ASC" ;

        if(sortExpression == null)
        {   
           SectionGridViewSortExpression = e.SortExpression;
           sDirection = e.SortDirection;
        } 
        else
           SectionGridViewSortExpression = sortExpression

        if (dtSectionGridData != null)
        {
            DataView dataView = new DataView(dtSectionGridData);
            dataView.Sort = SectionGridViewSortExpression + " " + ConvertSectionSortDirectionToSql(sDirection);

            SectionGridView.DataSource = dataView;
            SectionGridView.DataBind();
        }
    }

注意:上述代码未经测试。可能需要对其进行微调。例如保持
SortExpression
SortDirection
并检查
gridview排序
事件。在问题更新后的

中,您的问题有解决方法:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
更改此行:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
lnkHeader.Click += new EventHandler(lnkHeader_Click);
在事件处理程序中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{
    sortExpression = "yoursortexpression"; //class level string or ViewState
    SectionGridView_Sorting(null, null); //intentionally calling gridview sorting event
}
在gridview排序事件中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
    {
         //Get the CourseID
        populateSectionGrid();
        DataTable dtSectionGridData = SectionGridView.DataSource as DataTable;

       string sDirection = "ASC" ;

        if(sortExpression == null)
        {   
           SectionGridViewSortExpression = e.SortExpression;
           sDirection = e.SortDirection;
        } 
        else
           SectionGridViewSortExpression = sortExpression

        if (dtSectionGridData != null)
        {
            DataView dataView = new DataView(dtSectionGridData);
            dataView.Sort = SectionGridViewSortExpression + " " + ConvertSectionSortDirectionToSql(sDirection);

            SectionGridView.DataSource = dataView;
            SectionGridView.DataBind();
        }
    }

注意:上述代码未经测试。可能需要对其进行微调。例如保持
SortExpression
SortDirection
并检查
gridview排序
事件。在问题更新后的

中,您的问题有解决方法:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
更改此行:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
lnkHeader.Click += new EventHandler(lnkHeader_Click);
在事件处理程序中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
void lnkHeader_Click(Object sender, EventArgs e) 
{
    sortExpression = "yoursortexpression"; //class level string or ViewState
    SectionGridView_Sorting(null, null); //intentionally calling gridview sorting event
}
在gridview排序事件中:

TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);
protected void SectionGridView_Sorting(object sender, GridViewSortEventArgs e)
    {
         //Get the CourseID
        populateSectionGrid();
        DataTable dtSectionGridData = SectionGridView.DataSource as DataTable;

       string sDirection = "ASC" ;

        if(sortExpression == null)
        {   
           SectionGridViewSortExpression = e.SortExpression;
           sDirection = e.SortDirection;
        } 
        else
           SectionGridViewSortExpression = sortExpression

        if (dtSectionGridData != null)
        {
            DataView dataView = new DataView(dtSectionGridData);
            dataView.Sort = SectionGridViewSortExpression + " " + ConvertSectionSortDirectionToSql(sDirection);

            SectionGridView.DataSource = dataView;
            SectionGridView.DataBind();
        }
    }


注意:上述代码未经测试。可能需要对其进行微调。例如保持
SortExpression
SortDirection
并检查
gridview排序
事件。在

中,您似乎正在使用已存在的gridview\u排序事件绑定linkbutton click事件。您的
节gridview\u排序
实现了
事件处理程序
?您似乎正在使用已存在的gridview\u排序事件绑定linkbutton click事件。您的
节gridview\u排序
实现了
EventHandler
?您似乎正在绑定已存在的带有gridview\u排序事件的linkbutton click事件。您的
部分gridview\u排序
实现了
EventHandler
?您似乎正在绑定带有gridview\u排序事件的linkbutton click事件。您的
SectionGridView\u排序
实现了
EventHandler
?我在上面添加了一个现有的SectionGridView排序事件。我想合并此行,使其跨越两行。当我这样做时,我将失去在此列上排序的能力。我必须添加LinkButton才能进行排序。我需要在合并2个标题行后对该列进行排序。我尝试设置SortExpression,但这并没有使其可排序。我还尝试了以下操作:`lnkHeader.Click+=new GridViewSortEventHandler(SectionGridView_Sorting);`但这也不起作用,这是行不通的。您无法将gridview事件绑定到linkbutton。如何在合并行标题后对该列进行排序我在上面添加了一个现有的SectionGridView排序事件。我想合并此行,使其跨越两行。当我这样做时,我将失去在此列上排序的能力。我必须添加LinkButton才能进行排序。我需要在合并2个标题行后对该列进行排序。我尝试设置SortExpression,但这并没有使其可排序。我还尝试了以下操作:`lnkHeader.Click+=new GridViewSortEventHandler(SectionGridView_Sorting);`但这也不起作用,这是行不通的。您无法将gridview事件绑定到linkbutton。如何在合并行标题后对该列进行排序我在上面添加了一个现有的SectionGridView排序事件。我想合并此行,使其跨越两行。当我这样做时,我将失去在此列上排序的能力。我有
TableCell cellSecID = new TableHeaderCell();                 
cellSecID.HorizontalAlign = HorizontalAlign.Center;                 
cellSecID.RowSpan = 2;
LinkButton lnkHeader = new LinkButton();
lnkHeader.PostBackUrl = HttpContext.Current.Request.Url.LocalPath;
lnkHeader.CommandArgument = "SectionID";
lnkHeader.Text = "SectionID";
lnkHeader.Click += new EventHandler(SectionGridView_Sorting); //This is the problem
cellSecID.Controls.Add(lnkHeader);