如果某个条件失败,则在devexpress gridview的rowupdating事件中显示popupcontrol

时间:2011-03-05 06:48:12

标签: devexpress

我有一个Devexpress Gridview,其中显示了商品及其价格。

启用编辑。

我使用rowupdating事件,以便检查更新的价格是否高于正常值。

如果是,我取消编辑

e.Cancel = true;
 ASPxGridView1.CancelEdit();

我想要的下一件事就是弹出一个aspx popupcontrol,请求输入密码,以便在rowupdating事件中继续使用更高的金额。

popcontrol将包含密码文本框和按钮。剩余的procces将通过按钮单击功能执行

虽然我打电话给popcontrol

 ASPxPopupControl2.ShowOnPageLoad = true;
流行音乐没有出现......为什么会这样......

这是我的所有代码..

 protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
{
    string msg;

    double new_amt = double.Parse(e.NewValues["Amount"].ToString());//-->gets new amount

    string type= e.OldValues["Type"].ToString();//-->gets the item

    double refer_amt=Misc_functions.Get_Item_Amount(type,out msg);//--this function fetches the normal amount for a particular item

    if (new_amt > refer_amt)
    {
        e.Cancel = true;
        ASPxGridView1.CancelEdit();

        ASPxPopupControl2.ShowOnPageLoad = true;

    }


}

如果编辑的数量高于正常值,我基本上需要密码验证。 任何想法??

1 个答案:

答案 0 :(得分:0)

使用服务器代码无法完成此操作。最好的解决方案是在RowUpdating事件处理程序中创建自定义java脚本变量,并在ASPxGridView的客户端EndCallback事件处理程序中检查其值。即。

 protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
{ ...
   gridView.JSProperties["cpShowPopup"] = true;
...
}

EndCallback = function(s,e) { 
  if(typeof(s.cpShowPopup) != 'undefined') { 
    popup.Show();
  }
}

希望,这有帮助。