Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
Asp.net gridview在行编辑时消失,在两个函数之间单击可将其恢复为展开项_Asp.net_Gridview_Editing - Fatal编程技术网

Asp.net gridview在行编辑时消失,在两个函数之间单击可将其恢复为展开项

Asp.net gridview在行编辑时消失,在两个函数之间单击可将其恢复为展开项,asp.net,gridview,editing,Asp.net,Gridview,Editing,我不确定这是否奇怪,但我有一个gridview,它在行编辑中消失了 我的步骤是>单击butUsers>单击编辑>网格分解>单击butDev>网格返回>单击butUsers>网格加载,我选择的项目处于编辑模式 我的活动缺少什么 谢谢 代码隐藏 using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.Web; using System.Web.UI; usin

我不确定这是否奇怪,但我有一个gridview,它在行编辑中消失了

我的步骤是>单击butUsers>单击编辑>网格分解>单击butDev>网格返回>单击butUsers>网格加载,我选择的项目处于编辑模式

我的活动缺少什么

谢谢

代码隐藏

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class equipment : System.Web.UI.Page
{
    public string strMode;
    ParameterCollection pcEquip;

    dsData.tblEquipmentDataTable dtEquipment;
    dsDataTableAdapters.tblEquipmentTableAdapter taEquipment;
    SqlDataSource dsEquipment;

    protected void Page_Load(object sender, EventArgs e)
    {
        dtEquipment = new dsData.tblEquipmentDataTable();
        taEquipment = new dsDataTableAdapters.tblEquipmentTableAdapter();
        dsEquipment = new SqlDataSource();

        smEquipment.RegisterAsyncPostBackControl(butUsers);
    }
    protected void butUsers_Click(object sender, EventArgs e)
    {
        hidMode.Value = "Users";
        dtEquipment.Clear();
        taEquipment.FillByUsers(dtEquipment);
        gvItems.DataSource = dtEquipment;
        gvItems.DataBind();

        upTable.Update();
    }
    protected void butDevelopment_Click(object sender, EventArgs e)
    {
        //hidMode.Value = "Users";
        dtEquipment.Clear();
        taEquipment.FillByDev(dtEquipment);
        gvItems.DataSource = dtEquipment;
        gvItems.DataBind();

        upTable.Update();
    }
    protected void gvItems_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    }
    protected void gvItems_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gvItems.EditIndex = e.NewEditIndex;
        gvItems.DataSource = dtEquipment;
        gvItems.DataBind();
        upTable.Update();

    }
}
ASPX页

<asp:Content ID="cntCenter" ContentPlaceHolderID="CenterContent" runat="Server">
    <asp:UpdatePanel runat="server" ID="upTable" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:HiddenField runat="server" ID="hidMode" />
            <grid:TemplateGridView
                EnableTemplateEditing="True"
                runat="server" ID="gvItems" OnRowDataBound="gvItems_RowDataBound" OnRowEditing="gvItems_RowEditing"
                AutoGenerateColumns="False" DataKeyNames="ID" AllowPaging="True" 
                AllowSorting="True" CssClass="table" BorderStyle="None" BorderWidth="0px"
                GridLines="None">
                <Columns>
                    <asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
                    <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
                        ReadOnly="True" SortExpression="ID" Visible="False" />
                    <asp:BoundField DataField="UserID" HeaderText="UserID"
                        SortExpression="UserID" Visible="False" />
                    <asp:BoundField DataField="AssetNo" HeaderText="Asset No" 
                        SortExpression="AssetNo" />
                    <asp:BoundField DataField="Username" HeaderText="User Name"
                        SortExpression="Username" />
                </Columns>
                <EditItemTemplate>
                    <div class="details">
                        <asp:HiddenField ID="hidID" runat="server" Value='<%# Eval("ID") %>' />
                        <asp:HiddenField ID="hidUserID" runat="server" ClientIDMode="Static" Value='<%# Bind("UserID") %>' />
                        <table class="detailsview" cellpadding="0" cellspacing="0">
                            <tr>
                                <td class="td_title_align">Asset No:</td>
                                <td>
                                    <asp:TextBox ID="txtAssetNo" runat="server" CssClass="edit_box" Text='<%# Bind("AssetNo") %>' />
                                </td>
                                <td class="td_title_align">CPU:</td>
                                <td>
                                    <asp:TextBox ID="txtCPU" runat="server" CssClass="edit_box" Text='<%# Bind("CPU") %>' />
                                </td>
                                <td class="td_title_align">Shipped Date:</td>
                                <td>
                                    <asp:TextBox ID="txtShippedDate" runat="server" CssClass="edit_box" Text='<%# Bind("ShippedDate", "{0:dd/MM/yyyy}") %>' />
                                </td>
                            </tr>
                            <tr>
                                <td colspan="8">
                                    <div class="footer_command">
                                        <asp:Button runat="server" ID="btnUpdate" CommandName="Update" Text="Update" CssClass="command_button" />
                                        <asp:Button runat="server" ID="btnCancel" CommandName="Cancel" Text="Cancel" CssClass="command_button" />
                                    </div>
                            </tr>
                        </table>
                    </div>
                </td>
            </tr>
                </EditItemTemplate>
            </grid:TemplateGridView>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

资产编号:
中央处理器:
装运日期:

在页面加载期间只需绑定一次。我认为这个代码块在当前代码中的每次回发时都会执行,所以这可能是重新绑定数据表。您可以通过在调试模式下的pageload上放置断点进行检查(每次回发时都会调用该断点)。这可能会解决你的问题

 protected void Page_Load(object sender, EventArgs e)
    {
       if(!Page.IsPostback)
       {
         dtEquipment = new dsData.tblEquipmentDataTable();
        taEquipment = new dsDataTableAdapters.tblEquipmentTableAdapter();
        dsEquipment = new SqlDataSource();
        smEquipment.RegisterAsyncPostBackControl(butUsers);
        }
    }
编辑 我从您的代码中了解到,您在
pageLoad
上初始化数据表和表适配器。现在,我们将初始化代码放入
if(!Page.IsPostBack)
中,您将获得空引用,因为它们尚未初始化(它们是在PageLoad事件中初始化的)

记住HTTP是无状态的


。要在每次回发时保存这些表的状态,您可以使用Viewstate或Session。

当我单击butUsers时,我现在得到[code]SCRIPT5022:Sys.WebForms.PageRequestManagerServerErrorException:对象引用未设置为对象的实例。[/code]我想它指的是dtEquipment,当我单击butDev时,我得到了相同的错误,但它指的是dtEquipment我如何使用会话或视图状态,你能给我一个示例吗?谢谢