Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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#中,通过点击事件向gridview标题添加图像按钮_C#_Asp.net_Gridview_Event Handling_Onclick - Fatal编程技术网

在c#中,通过点击事件向gridview标题添加图像按钮

在c#中,通过点击事件向gridview标题添加图像按钮,c#,asp.net,gridview,event-handling,onclick,C#,Asp.net,Gridview,Event Handling,Onclick,我有一个gridview(如下所示),其中填充了有关项目的详细信息,我希望能够通过单击要排序的标题对结果进行排序 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt" DataKeyNames="ProjectID" OnRowDataBound=

我有一个gridview(如下所示),其中填充了有关项目的详细信息,我希望能够通过单击要排序的标题对结果进行排序

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="mGrid"
PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt" DataKeyNames="ProjectID"
OnRowDataBound="OnRowDataBound" EnableModelValidation="True" Style="width: 95%;
float: left;" AllowSorting="True">
<AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>
<Columns>
    <asp:BoundField DataField="Title" HeaderText="Project Title" ItemStyle-Width="10%"
        ItemStyle-Font-Bold="true">
        <ItemStyle Width="10%" />
    </asp:BoundField>
    <asp:BoundField DataField="Division" HeaderText="Division" ItemStyle-Width="10%">
        <ItemStyle Width="10%" />
    </asp:BoundField>
    <asp:BoundField DataField="Due Date" HeaderText="Due Date" ItemStyle-Width="10%">
        <ItemStyle Width="10%" />
    </asp:BoundField>
    <asp:BoundField DataField="Status" HeaderText="Status" ItemStyle-Width="10%">
        <ItemStyle Width="10%" />
    </asp:BoundField>
</Columns>
<PagerStyle CssClass="pgr"></PagerStyle>
这将按预期显示标题,但是,当我单击任一图像按钮时,事件不会触发,标题将从aspx代码中返回默认值,并删除箭头,我不太确定原因是什么


非常感谢您的帮助。

看起来您需要将addHeaderFilters()封装在一个容器中!IsPostBack语句

像这样

if(!IsPostBack)
{
    addHeaderFilters();
}

看起来您需要将addHeaderFilters()封装在一个容器中!IsPostBack语句

像这样

if(!IsPostBack)
{
    addHeaderFilters();
}

这也是我的第一个想法,但它是内在的!isPostBack是网格绑定方法,也包含在!我回来了?网格是否正在反弹?如果是这样的话,每次重新绑定gridview时,您也必须重新绑定标题。我绑定了它,因为我在其中有一个gridview,据我所知,我也在重新绑定标题。我改变了我的设计,使它更容易实现,节省时间。我使用了一个带有HeaderTemplate的TemplateField,这使我可以在ascx页面中对ImageButtons进行编码,而无需动态添加它-感谢您的帮助这也是我的第一个想法,但它在里面!isPostBack是网格绑定方法,也包含在!我回来了?网格是否正在反弹?如果是这样的话,每次重新绑定gridview时,您也必须重新绑定标题。我绑定了它,因为我在其中有一个gridview,据我所知,我也在重新绑定标题。我改变了我的设计,使它更容易实现,节省时间。我使用了一个带有HeaderTemplate的TemplateField,这允许我在ascx页面中编码ImageButtons,而不必动态添加它-感谢helpPage加载方法:if(!IsPostBack){addHeaderFilters();}的页面加载方法:if(!IsPostBack){addHeaderFilters();}
protected void GridViewTransaction_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.Header)
    {
        ImageButton btnExcelReport = new ImageButton();
        btnExcelReport.ID = "BtnExcelReport";
        btnExcelReport.ImageUrl = "images/excel.gif";
        btnExcelReport.ToolTip = "generate Excel report from result";
        btnExcelReport.Click += new ImageClickEventHandler(btnExcelReport_Click);

        e.Row.Cells[0].Controls.Add(btnExcelReport);
    }
}