每次创建新项目时,我都会在此代码中收到错误消息。 第4行的“超出范围异常的参数”。
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
string recordIDcreateDir = editedItem.GetDataKeyValue("TransazioneID").ToString();
string subPath = "Allegati\\" + recordIDcreateDir;
bool isExists = System.IO.Directory.Exists(Server.MapPath(subPath));
if (!isExists)
System.IO.Directory.CreateDirectory(Server.MapPath(subPath));
........
显然在创建新记录时,“TransazioneID”值尚未出现,这就是我收到错误的原因。 但是我怎样才能使用if语句使记录存在。 我试过了
if(editedItem.GetDataKeyValue("TransazioneID").ToString()== null);
and....
if(editedItem.GetDataKeyValue("TransazioneID")!= null); and several others....
但没有任何成功。如何在该语句中捕获一些内容以避免在项目创建时执行这些行?
答案 0 :(得分:1)
if (editedItem.OwnerTableView.DataKeyNames.Contains("TransazioneID")) { ... }
来自Telerik的docs,在GridEditableItem.GetDataKeyValue
下注明:
从所有者GridTableView获取DataKeyValues以及相应的ItemIndex和keyName。 keyName应该是DataKeyNames数组中指定的一个