这是我的代码:
protected void ConfigurationGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
// row's Update button is clicked, but before the GridView control
// updates the row
DropDownList ddlst =
((DropDownList)ConfigurationGridView.Rows[e.RowIndex].FindControl("SubUnitDropDownList"));
if (ddlst != null)
{
ListItem li = ddlst.SelectedItem;
if (li != null)
{
if (Convert.ToInt32(li.Value) == -1)
{
// next line is where the problem is
// null doesn't change the old value
// it does nothing, how to I change this value to null??
e.NewValues["SubUnitId"] = null;
}
else
{
// we set the actual value
// this works nicely
e.NewValues["SubUnitId"] = li.Value;
}
}
}
}
基本上,我有一个通过组合框获取其值的字段,组合中的第一个值表示未分配/不适用/未设置的值,或者该记录的空值,当我分配其他值时它可以工作,比如 1 , 2, 或 3,当组合得到 -1 我想清除这个值,即放空值,但上面的行似乎没有做任何事情,我试过Nullable<int32>, Int32? value = null, Convert.ToInt32(null)
实际上放 0 而不是空。当我尝试 System.DBNull.Value 时,我收到一个错误:“'System.DBNull' 类型的对象无法转换为 'System.Nullable`1[System.Int32]' 类型。”。
我究竟做错了什么?提前感谢您的意见。