2011-10-14 32 views
0

希望有人能指出我在正確的方向ASPxGridview - 'interrupting'行插入事件

使用DevExpress ASPxGridView和編輯窗體。

我需要「中斷」的RowInserting事件警告用戶,如果有已經匹配他們的信息的記錄,並允許他們繼續或取消。

我已經添加了檢查(和取消)到OnRowInserting事件,並使用customJSProperties來觸發回調彈出我。

但是我卡在如何讓彈出窗口「是」按鈕恢復(或重新啓動)的行插入。

是否有從客戶端代碼再次觸發editform更新事件的方法嗎?

或者我需要一個完全不同的方法?

回答

0

首先,我發現這篇文章Use "yes"/"no" in edit mode for boolean value

所有第二,我希望你的所有行具有像ID的獨特價值。如果是這樣,我建議像這樣;

  • 使用OnRowInserting函數ASPxGridview。 (查找here代碼示例等)
  • 檢查插入ID已經在您的數據存儲或沒有。 (隨着運行查詢)
  • 如果您的數據存儲或不使用XtraMessageBox等;
XtraMessageBox.Show(「Content」, 「Title」, MessageBoxButtons.YesNo); 

在此之前,加DevExpress.XtraEditors命名空間。然後你可以像使用它一樣;

DialogResult myDialogResult; 
myDialogResult = XtraMessageBox.Show("Content", "Title", MessageBoxButtons.YesNo); 

if (myDialogResult == DialogResult.Yes) 
{ 
    //yes was clicked 
} 

if (myDialogResult == DialogResult.No) 
{ 
    //no was clicked 
} 

希望它給你一個主意。如果您有Devexpress許可證,您可以在Devexpress Support中詢問。他們非常快速且樂於助人。

0

你可以用自定義的HttpHandler解決這個問題。事情是這樣的:

  1. 按保存按鈕您編輯表單
  2. 保存上發起的HttpHandler調用(通過JavaScript)與所需的驗證數據(表名,ID)。使用jQuery你可以調用HTTP處理程序是這樣的:
  3. 如果處理程序返回true,繼續保存,否則顯示與OK警報/取消
  4. 如果用戶選擇OK繼續保存

JavaScript調用與HTTP處理程序將是這樣的:

$.ajax({ 
    async: false, 
    cache: false, 
    url: 'YourHttpHandler.ashx', 
    data: { tableName: "your table name", record_id: your_id }, 
    success: 
     function (data, textStatus, xmlHttpRequest) 
     { 
      if(data.result==true) 
       if(confirm('Continue?')) 
       { 
        // continue with save 
       } 
     } 
}); 
+0

感謝您的建議 - 這些都不能真正從editform的onrowinserting事件工作。我採取了不同的方法解決問題,要求用戶再次點擊保存。 – Judy