Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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# ASP.Net GridView具有分页的奇怪编辑行为_C#_Asp.net_Gridview_Webforms_Objectdatasource - Fatal编程技术网

C# ASP.Net GridView具有分页的奇怪编辑行为

C# ASP.Net GridView具有分页的奇怪编辑行为,c#,asp.net,gridview,webforms,objectdatasource,C#,Asp.net,Gridview,Webforms,Objectdatasource,我有一个ObjectDataSource <asp:ObjectDataSource SelectCountMethod="GetCount" EnablePaging="true" SortParameterName="sortExpression" ID="customersDS" runat="server" SelectMethod="GetList" TypeName="expenses.Classes.ExpenseFactory" DeleteMethod="Delete"

我有一个ObjectDataSource

<asp:ObjectDataSource SelectCountMethod="GetCount" EnablePaging="true" SortParameterName="sortExpression" ID="customersDS" runat="server" SelectMethod="GetList" TypeName="expenses.Classes.ExpenseFactory" DeleteMethod="Delete" UpdateMethod="Update"  >
    <SelectParameters>
        <asp:ControlParameter ControlID="IdHidden" PropertyName="Value" Name="userId" />   
        <asp:Parameter DbType='Boolean' DefaultValue='false' Name='isExpense' />      
         <asp:Parameter DbType='Boolean' DefaultValue='false' Name='containRepeated' />  
         <asp:ControlParameter DbType="Int32" DefaultValue="" ControlID="CategorySelector2" Name="categoryId" />        
          <asp:ControlParameter DbType="DateTime" DefaultValue="" ControlID="FromSpentDateCalendarBox" Name="from" />  
          <asp:ControlParameter DbType="DateTime" DefaultValue="" ControlID="ToSpentDateCalendarBox" Name="to" />  
    </SelectParameters>
    <UpdateParameters>
     <asp:ControlParameter ControlID="IdHidden" PropertyName="Value" Name="userId" />   
        <asp:Parameter DbType='Boolean' DefaultValue='false' Name='isExpense' />   
    </UpdateParameters>
    </asp:ObjectDataSource>
RowDataBound(将删除按钮更改为带有配置提示|的自定义按钮):

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // we are using a html anchor and a hidden asp:button for the delete
            HtmlAnchor linkDelete = (HtmlAnchor) e.Row.FindControl("linkDelete");
            ImageButton btnDelete = (ImageButton) e.Row.FindControl("btnDelete");

            string prompt = Resources.Default.DeletePrompt;
            linkDelete.Attributes["onclick"] = string.Format(prompt, btnDelete.ClientID);

            Expense expense = e.Row.DataItem as Expense;
            if (expense!=null)
            {
                if (expense.SpentDate>DateTime.Now)
                {
                    e.Row.CssClass = "future";   
                }
            }

            e.Row.Cells[1].CssClass = e.Row.Cells[4].CssClass = "red";               
        }

你能显示RowDataBound和PreRender中发生了什么吗?@scartag我更新了我的问题如果你关闭部分渲染会发生什么情况?(
ScriptManager
上的
EnablePartialRendering=“False”
)@RichardDecing同样奇怪的行为,编辑第一页上的项目
<asp:CommandField ItemStyle-Width="75px" HeaderStyle-Font-Bold=true HeaderText="<%$ Resources:Default, Actions %>"  EditImageUrl="~/img/edit.png" ButtonType='Image'  ShowEditButton="True" UpdateImageUrl="~/img/save.gif" CancelImageUrl="~/img/cancel.png" >                                                                      
   <ControlStyle CssClass="my_edit_buttons" />                             
</asp:CommandField>
    protected void PreRender(object sender, EventArgs e)
    {
        try
        {
            GridView1.UseAccessibleHeader = false;
            GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
        }
        catch
        {

        }
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // we are using a html anchor and a hidden asp:button for the delete
            HtmlAnchor linkDelete = (HtmlAnchor) e.Row.FindControl("linkDelete");
            ImageButton btnDelete = (ImageButton) e.Row.FindControl("btnDelete");

            string prompt = Resources.Default.DeletePrompt;
            linkDelete.Attributes["onclick"] = string.Format(prompt, btnDelete.ClientID);

            Expense expense = e.Row.DataItem as Expense;
            if (expense!=null)
            {
                if (expense.SpentDate>DateTime.Now)
                {
                    e.Row.CssClass = "future";   
                }
            }

            e.Row.Cells[1].CssClass = e.Row.Cells[4].CssClass = "red";               
        }