c# - 从后面的代码更新 GridView。无法掌握数据
问题描述
我正在从后面的代码中更新 GridView (JobCardStatusGridView),虽然我掌握了行索引,但我无法掌握数据。这是我的代码。
protected void JobCardStatusGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int jobCardId = int.Parse((JobCardStatusGridView.Rows[e.RowIndex].FindControl("JobCardID") as TextBox).Text);
string completedDate = (JobCardStatusGridView.Rows[e.RowIndex].FindControl("CompletedData") as TextBox).Text;
CrewController crewManager = new CrewController();
crewManager.UpdateJobCard(jobCardId, completedDate);
JobCardStatusGridView.EditIndex = -1;
PopulateRouteStatus();
}
这是我的 Page_Load
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateRouteStatus();
}
}
我从变量 jobCardId 收到的错误是 Input string is not in a correct format。当我评论该行时,我从变量 completedDate 收到的错误是Object reference not set to an instance of an object这导致我得出结论,我的代码没有获取数据。最奇怪的是,如果行索引。有人可以帮我看看我做错了什么吗?我现在注意到一些让我更困惑的事情。如果每次加载页面时都填充 GridView,我会检索 jobCardId 变量。但是当我在回发时阻止填充 GridView 时,为了能够检索数据,我得到了上面提到的错误。我真的不明白。有人弄清楚出了什么问题吗?谢谢
解决方案
因为jobCardId
该错误意味着您尝试从中解析整数的字符串实际上并不包含有效的整数。
因为completedDate
你写.FindControl("CompletedData")
的不是.FindControl("CompletedDate")
- 它应该是'e'而不是'a'。
您可以尝试更优雅的方式从下面的代码中从 Gridview 中查找 ID 和 Textbox 值。
试试这个:
protected void JobCardStatusGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = (GridViewRow)JobCardStatusGridView.Rows[e.RowIndex];
int jobCardId = Int32.Parse(JobCardStatusGridView.DataKeys[e.RowIndex].Value.ToString());
TextBox completedDate = (TextBox)row.FindControl("CompletedData");
CrewController crewManager = new CrewController();
crewManager.UpdateJobCard(jobCardId, completedDate);
JobCardStatusGridView.EditIndex = -1;
PopulateRouteStatus();
}
推荐阅读
- javascript - 未选中的 runtime.lastError - 在 background.js 中使用“chrome.storage.local.get”检索数据并将其传递给 popup.js 时收到
- javascript - 用新值更新不可变的 js 嵌套对象
- sql-server - SQL Server:主/从表一对多关系EF代码优先
- c - Int 值在按钮单击期间不增加
- amazon-web-services - 带有 GitHub 的 AWS CodeBuild 未按配置设置状态上下文和目标 URL
- java - 如何使用 Stream API 基于实体的两个不同列创建列表?
- java - 查找包含类的工件(jar)的第一个版本
- sql - 选择同一天的最后一个 ID 值
- sql - 在 Django 项目中存储原始 SQL 的位置
- build - 使用 catkin 在 ROS 中构建错误,与记录器“trollius”相关