2012-11-16 124 views
1

我有一個頁面列出了一堆數據網格中的項目。C#OnCommand呼叫警告框

每個項目有一個cooresponding remove link button,它從列表中刪除項目。在我的事件處理程序中 - 該項目被刪除 - 我做一個檢查,看看該項目是否是列表中的最後一個項目。如果它是最後一個項目,我不做刪除,但發送一個警告框告訴用戶該項目不能被刪除。我不確定如何讓C#觸發此警報框。

我的代碼如下所示:

在我的aspx,我有不同的鏈接按鈕一個DataGrid。如圖所示的代碼片段:

<ItemTemplate> 
    <asp:LinkButton runat="server" ID="Remove" 
       OnCommand="lnkRemove_Command" CommandArgument='<%# Eval("Id") %> 
       OnClientClick="return false;"> 
    </asp:LinkButton> 
</ItemTemplate> 

在我後面的代碼,我的事件處理程序看起來像這樣:

private List<MyItem> _items; 

    protected void lnkRemove_Command(object sender, CommandEventArgs e) 
    { 
     int ID = Convert.ToInt32(e.CommandArgument); 
     MyItem item = MyItem.GetItemByID(id); //This gets the item cooresponding to the ID 
     if (_items.Count != 1) 
     { 
      //code to delete item 
     } 
     else 
     { 
      //Generate an alert box to tell the user that this item cannot be deleted. 
      //I have tried the following two lines of commented code, which didn't work for me 
      //Response.Write(@"<script language='javascript'>alert('HERE');</script>"); 
      //Page.ClientScript.RegisterStartupScript(this.GetType(), "hwa", "alert('Hello World');", true); 

     } 
    } 

此外,可能需要注意的是在我Page_Load,我已經做了Context.RegisterResource(this, StyleSheet, Script)。換句話說,我有工作的JavaScript和CSS,與此代碼在MyFile.js中的其他功能cooresponds

如果可能,我想在MyFile.js中創建一個JS函數,我已經有js這是由各種OnClientClicks等觸發的功能...

是否有可能做這樣的事情:

in MyFile.js 

var GetAlertMessage = function() 
{ 
    alert("Can't delete this item"); 
} 

,並呼籲在我上面列出我的C#功能這個功能呢?

在此先感謝您的幫助。

+0

如何在原有的數據綁定,你隱藏刪除LinkBut​​ton的最後一個元素...然後沒問題! – MikeSmithDev

+0

由於用戶可能還會將其他項目添加到列表中,因此無法工作。 – Rhs

+0

因此,用戶可以添加項目而無需發回帖子? – MikeSmithDev

回答

2

你應該像對待任何其他驗證程序一樣對待它。應該有一個客戶端驗證功能和一個服務器端驗證功能。

客戶端上的每個刪除,能夠項驗證

,添加onclick="ValidateDeletion();"class="deleteable-item"

function ValidateDeletion() 
{ 
    var itemCount = $(".deleteable-item").length; 
    if(itemCount == 1) 
    { 
     alert("Sorry, you cant delete this item.") 
     return false; 
    } 
    else 
    { 
     //let it pass through 
    } 

} 
+0

謝謝。創建一個類並檢查長度正是我所需要的。極好的解決 – Rhs