C#OnCommand呼叫提示框

时间:2012-11-16 16:35:40

标签: c# javascript asp.net

我有一个页面,列出了数据网格中的一堆项目。

每个项目都有一个相应的remove link button,它会从列表中删除该项目。在我的事件处理程序中 - 项目被删除 - 我检查项目是否是列表中的最后一项。如果它是最后一项,我不进行删除,但发送一个警告框告诉用户该项目无法删除。我不确定如何让C#触发此警报框。

我的代码如下所示:

在我的aspx中,我有一个带有各种链接按钮的数据网格。代码片段如下所示:

<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中此页面的其他功能的代码协调一致

如果可能的话,我想在MyFile.js中创建一个JS函数,我已经有了各种OnClientClicks等触发的js函数......

是否可以做这样的事情:

in MyFile.js

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

并在我上面列出的C#函数中调用此函数?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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
    }

}