4

我有一个自定义 GridView 控件(继承system.web.ui.webcontrols.gridview),我想根据用户最近插入的值来控制 TextBox 的值(插入的值不会提交给数据源)。

在 Grid.DataBound 中,我可以查询单个列的单元格以获取我设置为 TextBox 的当前最大值。

int maxTimeSlot = grid.Rows.OfType<GridViewRow>().Max(r => int.Parse(r.Cells[1].Text));

插入新行后,我可以访问 Grid 的“Inserts”属性,其中包含到目前为止所有插入行的列表,例如:

GridView.Inserts[0].NewValues & GridView.Inserts[0].OldValues

我需要做的是使用此“插入”列表再次获取最大值,但我正在努力查询 NewValues.Values (OrderedDictionaryKeyValueCollection) 以获取该值。

NewValues.Values.OfType<KeyValuePair<object, object>>().Select(r => r.Key == "timeslot").Max(t => (int)t.Value)

以上是我对它如何工作的“想法”,但自然不是。

4

1 回答 1

3

对 Select 的调用将每个KeyValuePair输入投影NewValues.Values到布尔值,因此您不再有权访问原始数据。

看起来您正在尝试查找所有“时间段”值,我认为您需要类似的东西

NewValues.Values.OfType<KeyValuePair<object, object>>().Where(r => r.Key == "timeslot").Max(t => (int)t.Value)
于 2011-07-04T15:54:34.160 回答