我有一个用户捕获数据的网络表单。此数据会影响 Gridview 中的其他数据。我想纠正一个 DetailsView 类型的控件,如果需要更新主数据的文本框和下拉列表中的数据发生更改,则该控件使更新按钮可见。
我在表单上有一个gridview,当用户单击更新时,我想使用OrderId
Gridview 上的主键更新数据库中的所有行。
如果我将代码作为每个文本框和下拉框并调用一个名为的例程,DoUpdate
那么这将起作用。但是它有点慢,因为每次更改都会强制更新,所以我认为最好显示一个更新按钮,然后用户可以单击该按钮进行更新。
当从按钮例程调用例程时,尽管 gridview 没有行。我假设我需要 findcontrol (gridview) 或其他东西,但不知道在什么中找到它。
以下是在按钮后面事件中调用时有效的代码,但是当作为按钮后面代码的一部分调用时,gridview 返回行数 0:
List<string> _OrderIds = new List<string>();
foreach (GridViewRow gvr in gvOrderLines.Rows)
{
Label myOrderIDLablel = (Label)gvr.FindControl("lblOrderID"); //find control since it is a template field
_OrderIds.Add(myOrderIDLablel.Text);
}
gridview 在 ASP 页面中定义
<asp:GridView ID="gvOrderLines" runat="server" AutoGenerateColumns="False"
DataSourceID="odsOrderDetail"