异常处理错误4

时间:2016-04-14 14:31:40

标签: c# asp.net gridview

display += Convert.ToString(GridView1.SelectedValue);
  

发生了'System.InvalidOperationException'类型的异常   System.Web.dll但未在用户代码中处理

其他信息:

  

必须在GridView“GridView1”上指定数据键,然后才能检索选定的数据键。使用DataKeyNames属性指定数据键。

包含罪魁祸首的GridView1_SelectedIndexChanged的代码段:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string display = "Combo="; 
    int s; 
    total_cost = 0; 
    s = GridView1.SelectedIndex; 
    switch (s) 
    { 
        case 0: 
            bool isInt = int.TryParse(lbl_total_price.Text, out total_cost ); 
            display += Convert.ToString(GridView1.SelectedValue); 
            lbl_combo_cost.Text = "100"; 
            total_cost += 100; 
            break;
    }
}

1 个答案:

答案 0 :(得分:0)

您获得的例外解释了您需要做什么。

  

必须在GridView“GridView1”上指定数据键,然后才能检索选定的数据键。使用DataKeyNames属性指定数据键。

在GridView中,您必须定义哪个字段(属性)应该作为键。这通常是数据中的标识符(例如ID)属性。您可以使用DataKeyNames上的GridView属性:

<asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns="False" DataSourceID="SqlDataSourcemenu" 
    OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Width="527px" 
    DataKeyNames="MyId"> 

此处,MyId应替换为应作为密钥的属性名称。