|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。明天在利用AspxGridView自界说的update按钮事务的时分,老是报出"不撑持所指定的办法"的毛病,英文毛病是"Specifiedmethodisnotsupported"。由于之前都没有效过AspxGridView自带的update,delete,addnew等办法,以是该成绩一向都没有发明。
利用场景是如许的,利用AspxGridView自带的编纂数据功效,点击一个自界说按钮挪用StartEdit()办法或AspxGridView自带的Edit按钮,出来了数据编纂窗口,编纂完数据后点击Update,就报出了不"撑持所指定的办法"的毛病
交叉一下,假如想要把按钮名"update","cancel"改成中文的,能够做以下设置:
<SettingsTextCommandCancel="作废"CommandUpdate="断定"/>
持续返来,找了之前一个利用DataSourceID绑定AspxGridView的示例来看,发明在用DataSourceID绑定AspxGridView的时分,界说了DeleteMethod,InsertMethod,UpdateMethod三个办法,那我们利用自界说的办法是否是也必需同时界说这三个办法呢,经测试后的确云云。
代码以下:
grid.RowUpdating+=newDevExpress.Web.Data.ASPxDataUpdatingEventHandler(grid_RowUpdating);
grid.RowInserting+=newDevExpress.Web.Data.ASPxDataInsertingEventHandler(grid_RowInserting);
grid.RowDeleting+=newDevExpress.Web.Data.ASPxDataDeletingEventHandler(grid_RowDeleting);
也能够在前台界说:
<dxwgv:AspxGridViewID="grid"runat="server"KeyFieldName="ID"OnRowDeleting="grid_RowDeleting"OnRowInserting="grid_RowInserting"OnRowUpdating="grid_RowUpdating">
grid_RowUpdating,grid_RowInserting,grid_RowDeleting三个办法以下:
voidGrid_RowDeleting(objectsender,DevExpress.Web.Data.ASPxDataDeletingEventArgse)
{
e.Cancel=true;
}
voidGrid_RowInserting(objectsender,DevExpress.Web.Data.ASPxDataInsertingEventArgse)
{
e.Cancel=true;
}
voidGrid_RowUpdating(objectsender,DevExpress.Web.Data.ASPxDataUpdatingEventArgse)
{
BLL.Targetbll=newSDIR.BLL.Target();
decimalt_value=0;
stringt_type="months";
switch(ReportType)
{
caseReportType.Months:
{
t_type="months";
break;
}
}
for(inti=0;i<DateCol_List.Count;i++)
{
if(decimal.TryParse(e.NewValues[DateCol_List].ToString(),outt_value))
{
bll.Update(FormID,Convert.ToDateTime(DateCol_List),t_value,t_type);
}
}
e.Cancel=true;
(senderasAspxGridView).CancelEdit();
if(base.Events[_o_grid_updateed]!=null)
{
EventHandlergrid_updateed=base.Events[_o_grid_updateed]asEventHandler;
grid_updateed(sender,EventArgs.Empty);
}
}
下面Grid_RowUpdating办法中的代码不必剖析,是我本人的调试代码,但必要注重的是,在三个办法中,代码e.Cancel=true必定不克不及少,假如没有这句代码,仍是会报"不撑持所指定的办法"的毛病。
总结,AspxGridView呈现"不撑持所指定的办法"的毛病时,人人应当确认以下四点。
1、AspxGridView已设置了主键,即KeyFieldName属性
2、AspxGridView已界说了事务OnRowDeleting,OnRowInserting,OnRowUpdating
3、背景有对OnRowDeleting,OnRowInserting,OnRowUpdating事务的处置
4、OnRowDeleting,OnRowInserting,OnRowUpdating办法中都包括e.Cancel=true代码。一个很大的类库。应用程序之所以难以跨平台,在于直接调用了特定平台的接口,而一个巨大的类库,就能极大地减少应用程序对平台的依赖。 |
|