C# 行上的Gridview编辑回发隐藏Gridview
这是一种非常奇怪的行为,我不知道是什么导致了它。 基本上,我有一个C# 行上的Gridview编辑回发隐藏Gridview,c#,asp.net,gridview,postback,datasource,C#,Asp.net,Gridview,Postback,Datasource,这是一种非常奇怪的行为,我不知道是什么导致了它。 基本上,我有一个aspx页面,其中有一个按钮,还有一个网格视图 按下按钮将从数据库获取数据到数据表,该数据表将用作网格视图的数据源 此gridview具有commandfield showeditbutton=“true” 一旦databind成功并且gridview有一些记录,我就按下edit按钮。编辑按钮在行编辑中有以下代码 GridView1.EditIndex = e.NewEditIndex; GridView1.Dat
aspx
页面,其中有一个按钮
,还有一个网格视图
按下按钮
将从数据库获取数据到数据表
,该数据表将用作网格视图的数据源
此gridview
具有commandfield showeditbutton=“true”
一旦databind
成功并且gridview
有一些记录,我就按下edit按钮
。编辑按钮在行编辑中有以下代码
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
令人惊讶的是,按下编辑按钮后,girdview
被隐藏
当我再次按下按钮时,它会将其恢复到编辑模式。奇怪的行为,知道吗
.aspx页面
<asp:Button ID="Button1" runat="server" Text="Button"
CssClass="info-button-flat" onclick="Button1_Click1" />
<br /><br /><br />
<asp:GridView ID="GridView1" runat="server" onrowediting="GridView1_RowEditing">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
protected void Button1_Click1(object sender, EventArgs e)
{
string aPara= null;
aPara= aUser.ID;
clsDataConduit aConn = new clsDataConduit();
aDataTable = new DataTable();
aConn.AddParameter("@aPara", aPara);
aDataTable = aConn.Return_aDataTable("an_user_sproc");
GridView1.DataSource = aDataTable;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
}
在GridView1\u行编辑中
不能重新绑定到任何数据源。只是GridView1.DataBind()除非设置GridView1.DataSource=SomeSource,否则code>将不起作用代码>
可能的解决方案:
将数据绑定代码移动到名为BindData()
的方法:
并从按钮单击()调用此方法:
在GridView1\u行编辑中
调用此方法:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindData();
}
您必须在更新基础数据源的位置处理GridView1\u rowUpdate
。希望有帮助
protected void Button1_Click1(object sender, EventArgs e)
{
BindData();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindData();
}