我有这个GridView来显示数据。
<dx:ASPxGridView ID="ASPxGridView1" runat="server" KeyFieldName="Line1;Line2" OnRowUpdating="ASPxGridView1_RowUpdating">
<Columns>
<dx:GridViewDataTextColumn Caption="Line1" FieldName="Line1" Name="col_Line1" ReadOnly="True" VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Line2" FieldName="Line2" Name="col_Line2" ReadOnly="True" VisibleIndex="2">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Text" FieldName="Text" Name="col_Text" VisibleIndex="3">
</dx:GridViewDataTextColumn>
</Columns>
</dx:ASPxGridView>
假设我有一个存储数据源的DataTable。 DataTable具有关于密钥的以下设置。
DataColumn[] key = new DataColumn[2];
key[0] = DT.Columns["Line1"];
key[1] = DT.Columns["Line2"];
DT.PrimaryKey = key;
当我尝试使用ASPxDataUpdatingEventArgs e在GridView更新事件中查找记录时
DataRow row = DT.Rows.Find(e.Keys);
我把错误作为标题。有没有错误的设置? 如果有任何其他示例代码需要参考,请告诉我。
答案 0 :(得分:1)
谢谢@Arpit。 使用以下代码解决了该问题。
object[] keys = new object[2];
keys[0] = e.Keys[0];
keys[1] = e.Keys[1];
DataRow row = dt.Rows.Find(keys);
答案 1 :(得分:0)
这是一些次要代码,可从您希望分配主键的数据表中生成这些代码:
// C#
var pKeys = new DataColumn[2]; // array
pKeys[0] = dt.Columns[dt.Columns.IndexOf("<first column name goes here>")]; // column 0-based of the table of interest
// if multi-part
pKeys[1] = dt.Columns[dt.Columns.IndexOf("<second column name goes here>")]; // column 0-based of the table of interest
...
...
dt.PrimaryKey = pKeys;