我有一个 asp:DataGrid 我需要填充,而最初的开发人员创建了一个非常灵活的奇怪包装器,所以我决定将它切换到一个 DataTable 来代替。唯一的问题是它用来填充我的网格的事件不喜欢我的数据表。它一直说它不能从 DataTable 转换为 DataRowView,这是有道理的。
我需要帮助找出一种将数据从我的 DataTable 传递到 dataGrid 的好方法。
这是有问题的事件
protected override void ReflectItem(DataGridItemEventArgs e)
{
if (e.Item.DataItem == null) return;
DataTable currentItem = (DataTable)e.Item.DataItem;
if (currentItem == null) return;
var labelBrokerMPID = (Label)e.Item.FindControl("labelBrokerMPID");
var labelBrokerName = (Label)e.Item.FindControl("labelBrokerName");
var labelClearingBrokerDTC = (Label)e.Item.FindControl("labelClearingBrokerDTC");
//var labelClearingBrokerName = (Label)e.Item.FindControl("labelClearingBrokerName");
var linkButtonViewBroker = (LinkButton)e.Item.FindControl("linkButtonViewBroker");
var linkButtonDeleteBroker = (LinkButton)e.Item.FindControl("linkButtonDeleteBroker");
labelBrokerMPID.Text = currentItem.Rows[0]["BrokerMPID"].ToString();
labelBrokerName.Text = currentItem.Rows[0]["BrokerName"].ToString();
labelClearingBrokerDTC.Text = currentItem.Rows[0]["ClearingBrokerDTC"].ToString();
linkButtonViewBroker.CommandArgument = currentItem.Rows[0]["RelationshipId"].ToString();
}
显然,数据表不会飞。我发现网格有点令人沮丧,因为他们使用标签而不是绑定列。我用绑定列而不是标签重新格式化数据网格会更容易吗?或者有没有更简单的方法来传递我的数据?
到目前为止,我将数据表存储在会话变量中并将其绑定到 DataGrid。这就是这个错误出现的时候。有没有一种简单的方法可以将我的数据从数据表转换为 dataRowView?
感谢所有帮助、建议或批评!